Text Compare
Produced: 7/19/2015 1:51:51 PM
   
Mode:  All, With Context  
Left file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template08\0718-1345\valgrind-bug-12410-12411\sanity\coregrind\m_syswrap\syswrap-generic.c  
Right file: C:\mksong\workspace_genproglase\genproglase-output-r1658\template08\0718-1345\valgrind-bug-12410-12411\000000\coregrind\m_syswrap\syswrap-generic.c  
1 typedef unsigned char UChar; = 1 typedef unsigned char UChar;
2 typedef signed char Char;   2 typedef signed char Char;
3 typedef char HChar;   3 typedef char HChar;
4 typedef unsigned short UShort;   4 typedef unsigned short UShort;
5 typedef short Short;   5 typedef short Short;
6 typedef unsigned int UInt;   6 typedef unsigned int UInt;
7 typedef int Int;   7 typedef int Int;
8 typedef unsigned long long ULong;   8 typedef unsigned long long ULong;
9 typedef long long Long;   9 typedef long long Long;
10 typedef UInt U128[4];   10 typedef UInt U128[4];
11 union __anonunion_V128_1 {   11 union __anonunion_V128_1 {
12    UChar w8[16] ;   12    UChar w8[16] ;
13    UShort w16[8] ;   13    UShort w16[8] ;
14    UInt w32[4] ;   14    UInt w32[4] ;
15    ULong w64[2] ;   15    ULong w64[2] ;
16 };   16 };
17 typedef union __anonunion_V128_1 V128;   17 typedef union __anonunion_V128_1 V128;
18 typedef float Float;   18 typedef float Float;
19 typedef double Double;   19 typedef double Double;
20 typedef unsigned char Bool;   20 typedef unsigned char Bool;
21 typedef UInt Addr32;   21 typedef UInt Addr32;
22 typedef ULong Addr64;   22 typedef ULong Addr64;
23 typedef unsigned long HWord;   23 typedef unsigned long HWord;
24 typedef __builtin_va_list __gnuc_va_list;   24 typedef __builtin_va_list __gnuc_va_list;
25 typedef __gnuc_va_list va_list;   25 typedef __gnuc_va_list va_list;
26 typedef unsigned long UWord;   26 typedef unsigned long UWord;
27 typedef long Word;   27 typedef long Word;
28 typedef UWord Addr;   28 typedef UWord Addr;
29 typedef UWord AddrH;   29 typedef UWord AddrH;
30 typedef UWord SizeT;   30 typedef UWord SizeT;
31 typedef Word SSizeT;   31 typedef Word SSizeT;
32 typedef Word PtrdiffT;   32 typedef Word PtrdiffT;
33 typedef Word OffT;   33 typedef Word OffT;
34 typedef Long Off64T;   34 typedef Long Off64T;
35 struct __anonstruct_UWordPair_2 {   35 struct __anonstruct_UWordPair_2 {
36    UWord uw1 ;   36    UWord uw1 ;
37    UWord uw2 ;   37    UWord uw2 ;
38 };   38 };
39 typedef struct __anonstruct_UWordPair_2 UWordPair;   39 typedef struct __anonstruct_UWordPair_2 UWordPair;
40 typedef UInt ThreadId;   40 typedef UInt ThreadId;
41 struct __anonstruct_SysRes_3 {   41 struct __anonstruct_SysRes_3 {
42    UWord _val ;   42    UWord _val ;
43    Bool _isError ;   43    Bool _isError ;
44 };   44 };
45 typedef struct __anonstruct_SysRes_3 SysRes;   45 typedef struct __anonstruct_SysRes_3 SysRes;
46 enum __anonenum_IRType_4 {   46 enum __anonenum_IRType_4 {
47     Ity_INVALID = 69632,   47     Ity_INVALID = 69632,
48     Ity_I1 = 69633,   48     Ity_I1 = 69633,
49     Ity_I8 = 69634,   49     Ity_I8 = 69634,
50     Ity_I16 = 69635,   50     Ity_I16 = 69635,
51     Ity_I32 = 69636,   51     Ity_I32 = 69636,
52     Ity_I64 = 69637,   52     Ity_I64 = 69637,
53     Ity_I128 = 69638,   53     Ity_I128 = 69638,
54     Ity_F32 = 69639,   54     Ity_F32 = 69639,
55     Ity_F64 = 69640,   55     Ity_F64 = 69640,
56     Ity_F128 = 69641,   56     Ity_F128 = 69641,
57     Ity_V128 = 69642   57     Ity_V128 = 69642
58 } ;   58 } ;
59 typedef enum __anonenum_IRType_4 IRType;   59 typedef enum __anonenum_IRType_4 IRType;
60 enum __anonenum_IREndness_5 {   60 enum __anonenum_IREndness_5 {
61     Iend_LE = 73728,   61     Iend_LE = 73728,
62     Iend_BE = 73729   62     Iend_BE = 73729
63 } ;   63 } ;
64 typedef enum __anonenum_IREndness_5 IREndness;   64 typedef enum __anonenum_IREndness_5 IREndness;
65 enum __anonenum_IRConstTag_6 {   65 enum __anonenum_IRConstTag_6 {
66     Ico_U1 = 77824,   66     Ico_U1 = 77824,
67     Ico_U8 = 77825,   67     Ico_U8 = 77825,
68     Ico_U16 = 77826,   68     Ico_U16 = 77826,
69     Ico_U32 = 77827,   69     Ico_U32 = 77827,
70     Ico_U64 = 77828,   70     Ico_U64 = 77828,
71     Ico_F32 = 77829,   71     Ico_F32 = 77829,
72     Ico_F32i = 77830,   72     Ico_F32i = 77830,
73     Ico_F64 = 77831,   73     Ico_F64 = 77831,
74     Ico_F64i = 77832,   74     Ico_F64i = 77832,
75     Ico_V128 = 77833   75     Ico_V128 = 77833
76 } ;   76 } ;
77 typedef enum __anonenum_IRConstTag_6 IRConstTag;   77 typedef enum __anonenum_IRConstTag_6 IRConstTag;
78 union __anonunion_Ico_7 {   78 union __anonunion_Ico_7 {
79    Bool U1 ;   79    Bool U1 ;
80    UChar U8 ;   80    UChar U8 ;
81    UShort U16 ;   81    UShort U16 ;
82    UInt U32 ;   82    UInt U32 ;
83    ULong U64 ;   83    ULong U64 ;
84    Float F32 ;   84    Float F32 ;
85    UInt F32i ;   85    UInt F32i ;
86    Double F64 ;   86    Double F64 ;
87    ULong F64i ;   87    ULong F64i ;
88    UShort V128 ;   88    UShort V128 ;
89 };   89 };
90 struct _IRConst {   90 struct _IRConst {
91    IRConstTag tag ;   91    IRConstTag tag ;
92    union __anonunion_Ico_7 Ico ;   92    union __anonunion_Ico_7 Ico ;
93 };   93 };
94 typedef struct _IRConst IRConst;   94 typedef struct _IRConst IRConst;
95 struct __anonstruct_IRCallee_8 {   95 struct __anonstruct_IRCallee_8 {
96    Int regparms ;   96    Int regparms ;
97    HChar *name ;   97    HChar *name ;
98    void *addr ;   98    void *addr ;
99    UInt mcx_mask ;   99    UInt mcx_mask ;
100 };   100 };
101 typedef struct __anonstruct_IRCallee_8 IRCallee;   101 typedef struct __anonstruct_IRCallee_8 IRCallee;
102 struct __anonstruct_IRRegArray_9 {   102 struct __anonstruct_IRRegArray_9 {
103    Int base ;   103    Int base ;
104    IRType elemTy ;   104    IRType elemTy ;
105    Int nElems ;   105    Int nElems ;
106 };   106 };
107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;   107 typedef struct __anonstruct_IRRegArray_9 IRRegArray;
108 typedef UInt IRTemp;   108 typedef UInt IRTemp;
109 enum __anonenum_IROp_10 {   109 enum __anonenum_IROp_10 {
110     Iop_INVALID = 81920,   110     Iop_INVALID = 81920,
111     Iop_Add8 = 81921,   111     Iop_Add8 = 81921,
112     Iop_Add16 = 81922,   112     Iop_Add16 = 81922,
113     Iop_Add32 = 81923,   113     Iop_Add32 = 81923,
114     Iop_Add64 = 81924,   114     Iop_Add64 = 81924,
115     Iop_Sub8 = 81925,   115     Iop_Sub8 = 81925,
116     Iop_Sub16 = 81926,   116     Iop_Sub16 = 81926,
117     Iop_Sub32 = 81927,   117     Iop_Sub32 = 81927,
118     Iop_Sub64 = 81928,   118     Iop_Sub64 = 81928,
119     Iop_Mul8 = 81929,   119     Iop_Mul8 = 81929,
120     Iop_Mul16 = 81930,   120     Iop_Mul16 = 81930,
121     Iop_Mul32 = 81931,   121     Iop_Mul32 = 81931,
122     Iop_Mul64 = 81932,   122     Iop_Mul64 = 81932,
123     Iop_Or8 = 81933,   123     Iop_Or8 = 81933,
124     Iop_Or16 = 81934,   124     Iop_Or16 = 81934,
125     Iop_Or32 = 81935,   125     Iop_Or32 = 81935,
126     Iop_Or64 = 81936,   126     Iop_Or64 = 81936,
127     Iop_And8 = 81937,   127     Iop_And8 = 81937,
128     Iop_And16 = 81938,   128     Iop_And16 = 81938,
129     Iop_And32 = 81939,   129     Iop_And32 = 81939,
130     Iop_And64 = 81940,   130     Iop_And64 = 81940,
131     Iop_Xor8 = 81941,   131     Iop_Xor8 = 81941,
132     Iop_Xor16 = 81942,   132     Iop_Xor16 = 81942,
133     Iop_Xor32 = 81943,   133     Iop_Xor32 = 81943,
134     Iop_Xor64 = 81944,   134     Iop_Xor64 = 81944,
135     Iop_Shl8 = 81945,   135     Iop_Shl8 = 81945,
136     Iop_Shl16 = 81946,   136     Iop_Shl16 = 81946,
137     Iop_Shl32 = 81947,   137     Iop_Shl32 = 81947,
138     Iop_Shl64 = 81948,   138     Iop_Shl64 = 81948,
139     Iop_Shr8 = 81949,   139     Iop_Shr8 = 81949,
140     Iop_Shr16 = 81950,   140     Iop_Shr16 = 81950,
141     Iop_Shr32 = 81951,   141     Iop_Shr32 = 81951,
142     Iop_Shr64 = 81952,   142     Iop_Shr64 = 81952,
143     Iop_Sar8 = 81953,   143     Iop_Sar8 = 81953,
144     Iop_Sar16 = 81954,   144     Iop_Sar16 = 81954,
145     Iop_Sar32 = 81955,   145     Iop_Sar32 = 81955,
146     Iop_Sar64 = 81956,   146     Iop_Sar64 = 81956,
147     Iop_CmpEQ8 = 81957,   147     Iop_CmpEQ8 = 81957,
148     Iop_CmpEQ16 = 81958,   148     Iop_CmpEQ16 = 81958,
149     Iop_CmpEQ32 = 81959,   149     Iop_CmpEQ32 = 81959,
150     Iop_CmpEQ64 = 81960,   150     Iop_CmpEQ64 = 81960,
151     Iop_CmpNE8 = 81961,   151     Iop_CmpNE8 = 81961,
152     Iop_CmpNE16 = 81962,   152     Iop_CmpNE16 = 81962,
153     Iop_CmpNE32 = 81963,   153     Iop_CmpNE32 = 81963,
154     Iop_CmpNE64 = 81964,   154     Iop_CmpNE64 = 81964,
155     Iop_Not8 = 81965,   155     Iop_Not8 = 81965,
156     Iop_Not16 = 81966,   156     Iop_Not16 = 81966,
157     Iop_Not32 = 81967,   157     Iop_Not32 = 81967,
158     Iop_Not64 = 81968,   158     Iop_Not64 = 81968,
159     Iop_CasCmpEQ8 = 81969,   159     Iop_CasCmpEQ8 = 81969,
160     Iop_CasCmpEQ16 = 81970,   160     Iop_CasCmpEQ16 = 81970,
161     Iop_CasCmpEQ32 = 81971,   161     Iop_CasCmpEQ32 = 81971,
162     Iop_CasCmpEQ64 = 81972,   162     Iop_CasCmpEQ64 = 81972,
163     Iop_CasCmpNE8 = 81973,   163     Iop_CasCmpNE8 = 81973,
164     Iop_CasCmpNE16 = 81974,   164     Iop_CasCmpNE16 = 81974,
165     Iop_CasCmpNE32 = 81975,   165     Iop_CasCmpNE32 = 81975,
166     Iop_CasCmpNE64 = 81976,   166     Iop_CasCmpNE64 = 81976,
167     Iop_MullS8 = 81977,   167     Iop_MullS8 = 81977,
168     Iop_MullS16 = 81978,   168     Iop_MullS16 = 81978,
169     Iop_MullS32 = 81979,   169     Iop_MullS32 = 81979,
170     Iop_MullS64 = 81980,   170     Iop_MullS64 = 81980,
171     Iop_MullU8 = 81981,   171     Iop_MullU8 = 81981,
172     Iop_MullU16 = 81982,   172     Iop_MullU16 = 81982,
173     Iop_MullU32 = 81983,   173     Iop_MullU32 = 81983,
174     Iop_MullU64 = 81984,   174     Iop_MullU64 = 81984,
175     Iop_Clz64 = 81985,   175     Iop_Clz64 = 81985,
176     Iop_Clz32 = 81986,   176     Iop_Clz32 = 81986,
177     Iop_Ctz64 = 81987,   177     Iop_Ctz64 = 81987,
178     Iop_Ctz32 = 81988,   178     Iop_Ctz32 = 81988,
179     Iop_CmpLT32S = 81989,   179     Iop_CmpLT32S = 81989,
180     Iop_CmpLT64S = 81990,   180     Iop_CmpLT64S = 81990,
181     Iop_CmpLE32S = 81991,   181     Iop_CmpLE32S = 81991,
182     Iop_CmpLE64S = 81992,   182     Iop_CmpLE64S = 81992,
183     Iop_CmpLT32U = 81993,   183     Iop_CmpLT32U = 81993,
184     Iop_CmpLT64U = 81994,   184     Iop_CmpLT64U = 81994,
185     Iop_CmpLE32U = 81995,   185     Iop_CmpLE32U = 81995,
186     Iop_CmpLE64U = 81996,   186     Iop_CmpLE64U = 81996,
187     Iop_CmpNEZ8 = 81997,   187     Iop_CmpNEZ8 = 81997,
188     Iop_CmpNEZ16 = 81998,   188     Iop_CmpNEZ16 = 81998,
189     Iop_CmpNEZ32 = 81999,   189     Iop_CmpNEZ32 = 81999,
190     Iop_CmpNEZ64 = 82000,   190     Iop_CmpNEZ64 = 82000,
191     Iop_CmpwNEZ32 = 82001,   191     Iop_CmpwNEZ32 = 82001,
192     Iop_CmpwNEZ64 = 82002,   192     Iop_CmpwNEZ64 = 82002,
193     Iop_Left8 = 82003,   193     Iop_Left8 = 82003,
194     Iop_Left16 = 82004,   194     Iop_Left16 = 82004,
195     Iop_Left32 = 82005,   195     Iop_Left32 = 82005,
196     Iop_Left64 = 82006,   196     Iop_Left64 = 82006,
197     Iop_Max32U = 82007,   197     Iop_Max32U = 82007,
198     Iop_CmpORD32U = 82008,   198     Iop_CmpORD32U = 82008,
199     Iop_CmpORD64U = 82009,   199     Iop_CmpORD64U = 82009,
200     Iop_CmpORD32S = 82010,   200     Iop_CmpORD32S = 82010,
201     Iop_CmpORD64S = 82011,   201     Iop_CmpORD64S = 82011,
202     Iop_DivU32 = 82012,   202     Iop_DivU32 = 82012,
203     Iop_DivS32 = 82013,   203     Iop_DivS32 = 82013,
204     Iop_DivU64 = 82014,   204     Iop_DivU64 = 82014,
205     Iop_DivS64 = 82015,   205     Iop_DivS64 = 82015,
206     Iop_DivU64E = 82016,   206     Iop_DivU64E = 82016,
207     Iop_DivS64E = 82017,   207     Iop_DivS64E = 82017,
208     Iop_DivU32E = 82018,   208     Iop_DivU32E = 82018,
209     Iop_DivS32E = 82019,   209     Iop_DivS32E = 82019,
210     Iop_DivModU64to32 = 82020,   210     Iop_DivModU64to32 = 82020,
211     Iop_DivModS64to32 = 82021,   211     Iop_DivModS64to32 = 82021,
212     Iop_DivModU128to64 = 82022,   212     Iop_DivModU128to64 = 82022,
213     Iop_DivModS128to64 = 82023,   213     Iop_DivModS128to64 = 82023,
214     Iop_DivModS64to64 = 82024,   214     Iop_DivModS64to64 = 82024,
215     Iop_8Uto16 = 82025,   215     Iop_8Uto16 = 82025,
216     Iop_8Uto32 = 82026,   216     Iop_8Uto32 = 82026,
217     Iop_8Uto64 = 82027,   217     Iop_8Uto64 = 82027,
218     Iop_16Uto32 = 82028,   218     Iop_16Uto32 = 82028,
219     Iop_16Uto64 = 82029,   219     Iop_16Uto64 = 82029,
220     Iop_32Uto64 = 82030,   220     Iop_32Uto64 = 82030,
221     Iop_8Sto16 = 82031,   221     Iop_8Sto16 = 82031,
222     Iop_8Sto32 = 82032,   222     Iop_8Sto32 = 82032,
223     Iop_8Sto64 = 82033,   223     Iop_8Sto64 = 82033,
224     Iop_16Sto32 = 82034,   224     Iop_16Sto32 = 82034,
225     Iop_16Sto64 = 82035,   225     Iop_16Sto64 = 82035,
226     Iop_32Sto64 = 82036,   226     Iop_32Sto64 = 82036,
227     Iop_64to8 = 82037,   227     Iop_64to8 = 82037,
228     Iop_32to8 = 82038,   228     Iop_32to8 = 82038,
229     Iop_64to16 = 82039,   229     Iop_64to16 = 82039,
230     Iop_16to8 = 82040,   230     Iop_16to8 = 82040,
231     Iop_16HIto8 = 82041,   231     Iop_16HIto8 = 82041,
232     Iop_8HLto16 = 82042,   232     Iop_8HLto16 = 82042,
233     Iop_32to16 = 82043,   233     Iop_32to16 = 82043,
234     Iop_32HIto16 = 82044,   234     Iop_32HIto16 = 82044,
235     Iop_16HLto32 = 82045,   235     Iop_16HLto32 = 82045,
236     Iop_64to32 = 82046,   236     Iop_64to32 = 82046,
237     Iop_64HIto32 = 82047,   237     Iop_64HIto32 = 82047,
238     Iop_32HLto64 = 82048,   238     Iop_32HLto64 = 82048,
239     Iop_128to64 = 82049,   239     Iop_128to64 = 82049,
240     Iop_128HIto64 = 82050,   240     Iop_128HIto64 = 82050,
241     Iop_64HLto128 = 82051,   241     Iop_64HLto128 = 82051,
242     Iop_Not1 = 82052,   242     Iop_Not1 = 82052,
243     Iop_32to1 = 82053,   243     Iop_32to1 = 82053,
244     Iop_64to1 = 82054,   244     Iop_64to1 = 82054,
245     Iop_1Uto8 = 82055,   245     Iop_1Uto8 = 82055,
246     Iop_1Uto32 = 82056,   246     Iop_1Uto32 = 82056,
247     Iop_1Uto64 = 82057,   247     Iop_1Uto64 = 82057,
248     Iop_1Sto8 = 82058,   248     Iop_1Sto8 = 82058,
249     Iop_1Sto16 = 82059,   249     Iop_1Sto16 = 82059,
250     Iop_1Sto32 = 82060,   250     Iop_1Sto32 = 82060,
251     Iop_1Sto64 = 82061,   251     Iop_1Sto64 = 82061,
252     Iop_AddF64 = 82062,   252     Iop_AddF64 = 82062,
253     Iop_SubF64 = 82063,   253     Iop_SubF64 = 82063,
254     Iop_MulF64 = 82064,   254     Iop_MulF64 = 82064,
255     Iop_DivF64 = 82065,   255     Iop_DivF64 = 82065,
256     Iop_AddF32 = 82066,   256     Iop_AddF32 = 82066,
257     Iop_SubF32 = 82067,   257     Iop_SubF32 = 82067,
258     Iop_MulF32 = 82068,   258     Iop_MulF32 = 82068,
259     Iop_DivF32 = 82069,   259     Iop_DivF32 = 82069,
260     Iop_AddF64r32 = 82070,   260     Iop_AddF64r32 = 82070,
261     Iop_SubF64r32 = 82071,   261     Iop_SubF64r32 = 82071,
262     Iop_MulF64r32 = 82072,   262     Iop_MulF64r32 = 82072,
263     Iop_DivF64r32 = 82073,   263     Iop_DivF64r32 = 82073,
264     Iop_NegF64 = 82074,   264     Iop_NegF64 = 82074,
265     Iop_AbsF64 = 82075,   265     Iop_AbsF64 = 82075,
266     Iop_NegF32 = 82076,   266     Iop_NegF32 = 82076,
267     Iop_AbsF32 = 82077,   267     Iop_AbsF32 = 82077,
268     Iop_SqrtF64 = 82078,   268     Iop_SqrtF64 = 82078,
269     Iop_SqrtF64r32 = 82079,   269     Iop_SqrtF64r32 = 82079,
270     Iop_SqrtF32 = 82080,   270     Iop_SqrtF32 = 82080,
271     Iop_CmpF64 = 82081,   271     Iop_CmpF64 = 82081,
272     Iop_CmpF32 = 82082,   272     Iop_CmpF32 = 82082,
273     Iop_CmpF128 = 82083,   273     Iop_CmpF128 = 82083,
274     Iop_F64toI16S = 82084,   274     Iop_F64toI16S = 82084,
275     Iop_F64toI32S = 82085,   275     Iop_F64toI32S = 82085,
276     Iop_F64toI64S = 82086,   276     Iop_F64toI64S = 82086,
277     Iop_F64toI64U = 82087,   277     Iop_F64toI64U = 82087,
278     Iop_F64toI32U = 82088,   278     Iop_F64toI32U = 82088,
279     Iop_I16StoF64 = 82089,   279     Iop_I16StoF64 = 82089,
280     Iop_I32StoF64 = 82090,   280     Iop_I32StoF64 = 82090,
281     Iop_I64StoF64 = 82091,   281     Iop_I64StoF64 = 82091,
282     Iop_I64UtoF64 = 82092,   282     Iop_I64UtoF64 = 82092,
283     Iop_I64UtoF32 = 82093,   283     Iop_I64UtoF32 = 82093,
284     Iop_I32UtoF64 = 82094,   284     Iop_I32UtoF64 = 82094,
285     Iop_F32toI16S = 82095,   285     Iop_F32toI16S = 82095,
286     Iop_F32toI32S = 82096,   286     Iop_F32toI32S = 82096,
287     Iop_F32toI64S = 82097,   287     Iop_F32toI64S = 82097,
288     Iop_I16StoF32 = 82098,   288     Iop_I16StoF32 = 82098,
289     Iop_I32StoF32 = 82099,   289     Iop_I32StoF32 = 82099,
290     Iop_I64StoF32 = 82100,   290     Iop_I64StoF32 = 82100,
291     Iop_F32toF64 = 82101,   291     Iop_F32toF64 = 82101,
292     Iop_F64toF32 = 82102,   292     Iop_F64toF32 = 82102,
293     Iop_ReinterpF64asI64 = 82103,   293     Iop_ReinterpF64asI64 = 82103,
294     Iop_ReinterpI64asF64 = 82104,   294     Iop_ReinterpI64asF64 = 82104,
295     Iop_ReinterpF32asI32 = 82105,   295     Iop_ReinterpF32asI32 = 82105,
296     Iop_ReinterpI32asF32 = 82106,   296     Iop_ReinterpI32asF32 = 82106,
297     Iop_F64HLtoF128 = 82107,   297     Iop_F64HLtoF128 = 82107,
298     Iop_F128HItoF64 = 82108,   298     Iop_F128HItoF64 = 82108,
299     Iop_F128LOtoF64 = 82109,   299     Iop_F128LOtoF64 = 82109,
300     Iop_AddF128 = 82110,   300     Iop_AddF128 = 82110,
301     Iop_SubF128 = 82111,   301     Iop_SubF128 = 82111,
302     Iop_MulF128 = 82112,   302     Iop_MulF128 = 82112,
303     Iop_DivF128 = 82113,   303     Iop_DivF128 = 82113,
304     Iop_NegF128 = 82114,   304     Iop_NegF128 = 82114,
305     Iop_AbsF128 = 82115,   305     Iop_AbsF128 = 82115,
306     Iop_SqrtF128 = 82116,   306     Iop_SqrtF128 = 82116,
307     Iop_I32StoF128 = 82117,   307     Iop_I32StoF128 = 82117,
308     Iop_I64StoF128 = 82118,   308     Iop_I64StoF128 = 82118,
309     Iop_F32toF128 = 82119,   309     Iop_F32toF128 = 82119,
310     Iop_F64toF128 = 82120,   310     Iop_F64toF128 = 82120,
311     Iop_F128toI32S = 82121,   311     Iop_F128toI32S = 82121,
312     Iop_F128toI64S = 82122,   312     Iop_F128toI64S = 82122,
313     Iop_F128toF64 = 82123,   313     Iop_F128toF64 = 82123,
314     Iop_F128toF32 = 82124,   314     Iop_F128toF32 = 82124,
315     Iop_AtanF64 = 82125,   315     Iop_AtanF64 = 82125,
316     Iop_Yl2xF64 = 82126,   316     Iop_Yl2xF64 = 82126,
317     Iop_Yl2xp1F64 = 82127,   317     Iop_Yl2xp1F64 = 82127,
318     Iop_PRemF64 = 82128,   318     Iop_PRemF64 = 82128,
319     Iop_PRemC3210F64 = 82129,   319     Iop_PRemC3210F64 = 82129,
320     Iop_PRem1F64 = 82130,   320     Iop_PRem1F64 = 82130,
321     Iop_PRem1C3210F64 = 82131,   321     Iop_PRem1C3210F64 = 82131,
322     Iop_ScaleF64 = 82132,   322     Iop_ScaleF64 = 82132,
323     Iop_SinF64 = 82133,   323     Iop_SinF64 = 82133,
324     Iop_CosF64 = 82134,   324     Iop_CosF64 = 82134,
325     Iop_TanF64 = 82135,   325     Iop_TanF64 = 82135,
326     Iop_2xm1F64 = 82136,   326     Iop_2xm1F64 = 82136,
327     Iop_RoundF64toInt = 82137,   327     Iop_RoundF64toInt = 82137,
328     Iop_RoundF32toInt = 82138,   328     Iop_RoundF32toInt = 82138,
329     Iop_MAddF32 = 82139,   329     Iop_MAddF32 = 82139,
330     Iop_MSubF32 = 82140,   330     Iop_MSubF32 = 82140,
331     Iop_MAddF64 = 82141,   331     Iop_MAddF64 = 82141,
332     Iop_MSubF64 = 82142,   332     Iop_MSubF64 = 82142,
333     Iop_MAddF64r32 = 82143,   333     Iop_MAddF64r32 = 82143,
334     Iop_MSubF64r32 = 82144,   334     Iop_MSubF64r32 = 82144,
335     Iop_Est5FRSqrt = 82145,   335     Iop_Est5FRSqrt = 82145,
336     Iop_RoundF64toF64_NEAREST = 82146,   336     Iop_RoundF64toF64_NEAREST = 82146,
337     Iop_RoundF64toF64_NegINF = 82147,   337     Iop_RoundF64toF64_NegINF = 82147,
338     Iop_RoundF64toF64_PosINF = 82148,   338     Iop_RoundF64toF64_PosINF = 82148,
339     Iop_RoundF64toF64_ZERO = 82149,   339     Iop_RoundF64toF64_ZERO = 82149,
340     Iop_TruncF64asF32 = 82150,   340     Iop_TruncF64asF32 = 82150,
341     Iop_RoundF64toF32 = 82151,   341     Iop_RoundF64toF32 = 82151,
342     Iop_CalcFPRF = 82152,   342     Iop_CalcFPRF = 82152,
343     Iop_Add16x2 = 82153,   343     Iop_Add16x2 = 82153,
344     Iop_Sub16x2 = 82154,   344     Iop_Sub16x2 = 82154,
345     Iop_QAdd16Sx2 = 82155,   345     Iop_QAdd16Sx2 = 82155,
346     Iop_QAdd16Ux2 = 82156,   346     Iop_QAdd16Ux2 = 82156,
347     Iop_QSub16Sx2 = 82157,   347     Iop_QSub16Sx2 = 82157,
348     Iop_QSub16Ux2 = 82158,   348     Iop_QSub16Ux2 = 82158,
349     Iop_HAdd16Ux2 = 82159,   349     Iop_HAdd16Ux2 = 82159,
350     Iop_HAdd16Sx2 = 82160,   350     Iop_HAdd16Sx2 = 82160,
351     Iop_HSub16Ux2 = 82161,   351     Iop_HSub16Ux2 = 82161,
352     Iop_HSub16Sx2 = 82162,   352     Iop_HSub16Sx2 = 82162,
353     Iop_Add8x4 = 82163,   353     Iop_Add8x4 = 82163,
354     Iop_Sub8x4 = 82164,   354     Iop_Sub8x4 = 82164,
355     Iop_QAdd8Sx4 = 82165,   355     Iop_QAdd8Sx4 = 82165,
356     Iop_QAdd8Ux4 = 82166,   356     Iop_QAdd8Ux4 = 82166,
357     Iop_QSub8Sx4 = 82167,   357     Iop_QSub8Sx4 = 82167,
358     Iop_QSub8Ux4 = 82168,   358     Iop_QSub8Ux4 = 82168,
359     Iop_HAdd8Ux4 = 82169,   359     Iop_HAdd8Ux4 = 82169,
360     Iop_HAdd8Sx4 = 82170,   360     Iop_HAdd8Sx4 = 82170,
361     Iop_HSub8Ux4 = 82171,   361     Iop_HSub8Ux4 = 82171,
362     Iop_HSub8Sx4 = 82172,   362     Iop_HSub8Sx4 = 82172,
363     Iop_Sad8Ux4 = 82173,   363     Iop_Sad8Ux4 = 82173,
364     Iop_CmpNEZ16x2 = 82174,   364     Iop_CmpNEZ16x2 = 82174,
365     Iop_CmpNEZ8x4 = 82175,   365     Iop_CmpNEZ8x4 = 82175,
366     Iop_I32UtoFx2 = 82176,   366     Iop_I32UtoFx2 = 82176,
367     Iop_I32StoFx2 = 82177,   367     Iop_I32StoFx2 = 82177,
368     Iop_FtoI32Ux2_RZ = 82178,   368     Iop_FtoI32Ux2_RZ = 82178,
369     Iop_FtoI32Sx2_RZ = 82179,   369     Iop_FtoI32Sx2_RZ = 82179,
370     Iop_F32ToFixed32Ux2_RZ = 82180,   370     Iop_F32ToFixed32Ux2_RZ = 82180,
371     Iop_F32ToFixed32Sx2_RZ = 82181,   371     Iop_F32ToFixed32Sx2_RZ = 82181,
372     Iop_Fixed32UToF32x2_RN = 82182,   372     Iop_Fixed32UToF32x2_RN = 82182,
373     Iop_Fixed32SToF32x2_RN = 82183,   373     Iop_Fixed32SToF32x2_RN = 82183,
374     Iop_Max32Fx2 = 82184,   374     Iop_Max32Fx2 = 82184,
375     Iop_Min32Fx2 = 82185,   375     Iop_Min32Fx2 = 82185,
376     Iop_PwMax32Fx2 = 82186,   376     Iop_PwMax32Fx2 = 82186,
377     Iop_PwMin32Fx2 = 82187,   377     Iop_PwMin32Fx2 = 82187,
378     Iop_CmpEQ32Fx2 = 82188,   378     Iop_CmpEQ32Fx2 = 82188,
379     Iop_CmpGT32Fx2 = 82189,   379     Iop_CmpGT32Fx2 = 82189,
380     Iop_CmpGE32Fx2 = 82190,   380     Iop_CmpGE32Fx2 = 82190,
381     Iop_Recip32Fx2 = 82191,   381     Iop_Recip32Fx2 = 82191,
382     Iop_Recps32Fx2 = 82192,   382     Iop_Recps32Fx2 = 82192,
383     Iop_Rsqrte32Fx2 = 82193,   383     Iop_Rsqrte32Fx2 = 82193,
384     Iop_Rsqrts32Fx2 = 82194,   384     Iop_Rsqrts32Fx2 = 82194,
385     Iop_Neg32Fx2 = 82195,   385     Iop_Neg32Fx2 = 82195,
386     Iop_Abs32Fx2 = 82196,   386     Iop_Abs32Fx2 = 82196,
387     Iop_CmpNEZ8x8 = 82197,   387     Iop_CmpNEZ8x8 = 82197,
388     Iop_CmpNEZ16x4 = 82198,   388     Iop_CmpNEZ16x4 = 82198,
389     Iop_CmpNEZ32x2 = 82199,   389     Iop_CmpNEZ32x2 = 82199,
390     Iop_Add8x8 = 82200,   390     Iop_Add8x8 = 82200,
391     Iop_Add16x4 = 82201,   391     Iop_Add16x4 = 82201,
392     Iop_Add32x2 = 82202,   392     Iop_Add32x2 = 82202,
393     Iop_QAdd8Ux8 = 82203,   393     Iop_QAdd8Ux8 = 82203,
394     Iop_QAdd16Ux4 = 82204,   394     Iop_QAdd16Ux4 = 82204,
395     Iop_QAdd32Ux2 = 82205,   395     Iop_QAdd32Ux2 = 82205,
396     Iop_QAdd64Ux1 = 82206,   396     Iop_QAdd64Ux1 = 82206,
397     Iop_QAdd8Sx8 = 82207,   397     Iop_QAdd8Sx8 = 82207,
398     Iop_QAdd16Sx4 = 82208,   398     Iop_QAdd16Sx4 = 82208,
399     Iop_QAdd32Sx2 = 82209,   399     Iop_QAdd32Sx2 = 82209,
400     Iop_QAdd64Sx1 = 82210,   400     Iop_QAdd64Sx1 = 82210,
401     Iop_PwAdd8x8 = 82211,   401     Iop_PwAdd8x8 = 82211,
402     Iop_PwAdd16x4 = 82212,   402     Iop_PwAdd16x4 = 82212,
403     Iop_PwAdd32x2 = 82213,   403     Iop_PwAdd32x2 = 82213,
404     Iop_PwMax8Sx8 = 82214,   404     Iop_PwMax8Sx8 = 82214,
405     Iop_PwMax16Sx4 = 82215,   405     Iop_PwMax16Sx4 = 82215,
406     Iop_PwMax32Sx2 = 82216,   406     Iop_PwMax32Sx2 = 82216,
407     Iop_PwMax8Ux8 = 82217,   407     Iop_PwMax8Ux8 = 82217,
408     Iop_PwMax16Ux4 = 82218,   408     Iop_PwMax16Ux4 = 82218,
409     Iop_PwMax32Ux2 = 82219,   409     Iop_PwMax32Ux2 = 82219,
410     Iop_PwMin8Sx8 = 82220,   410     Iop_PwMin8Sx8 = 82220,
411     Iop_PwMin16Sx4 = 82221,   411     Iop_PwMin16Sx4 = 82221,
412     Iop_PwMin32Sx2 = 82222,   412     Iop_PwMin32Sx2 = 82222,
413     Iop_PwMin8Ux8 = 82223,   413     Iop_PwMin8Ux8 = 82223,
414     Iop_PwMin16Ux4 = 82224,   414     Iop_PwMin16Ux4 = 82224,
415     Iop_PwMin32Ux2 = 82225,   415     Iop_PwMin32Ux2 = 82225,
416     Iop_PwAddL8Ux8 = 82226,   416     Iop_PwAddL8Ux8 = 82226,
417     Iop_PwAddL16Ux4 = 82227,   417     Iop_PwAddL16Ux4 = 82227,
418     Iop_PwAddL32Ux2 = 82228,   418     Iop_PwAddL32Ux2 = 82228,
419     Iop_PwAddL8Sx8 = 82229,   419     Iop_PwAddL8Sx8 = 82229,
420     Iop_PwAddL16Sx4 = 82230,   420     Iop_PwAddL16Sx4 = 82230,
421     Iop_PwAddL32Sx2 = 82231,   421     Iop_PwAddL32Sx2 = 82231,
422     Iop_Sub8x8 = 82232,   422     Iop_Sub8x8 = 82232,
423     Iop_Sub16x4 = 82233,   423     Iop_Sub16x4 = 82233,
424     Iop_Sub32x2 = 82234,   424     Iop_Sub32x2 = 82234,
425     Iop_QSub8Ux8 = 82235,   425     Iop_QSub8Ux8 = 82235,
426     Iop_QSub16Ux4 = 82236,   426     Iop_QSub16Ux4 = 82236,
427     Iop_QSub32Ux2 = 82237,   427     Iop_QSub32Ux2 = 82237,
428     Iop_QSub64Ux1 = 82238,   428     Iop_QSub64Ux1 = 82238,
429     Iop_QSub8Sx8 = 82239,   429     Iop_QSub8Sx8 = 82239,
430     Iop_QSub16Sx4 = 82240,   430     Iop_QSub16Sx4 = 82240,
431     Iop_QSub32Sx2 = 82241,   431     Iop_QSub32Sx2 = 82241,
432     Iop_QSub64Sx1 = 82242,   432     Iop_QSub64Sx1 = 82242,
433     Iop_Abs8x8 = 82243,   433     Iop_Abs8x8 = 82243,
434     Iop_Abs16x4 = 82244,   434     Iop_Abs16x4 = 82244,
435     Iop_Abs32x2 = 82245,   435     Iop_Abs32x2 = 82245,
436     Iop_Mul8x8 = 82246,   436     Iop_Mul8x8 = 82246,
437     Iop_Mul16x4 = 82247,   437     Iop_Mul16x4 = 82247,
438     Iop_Mul32x2 = 82248,   438     Iop_Mul32x2 = 82248,
439     Iop_Mul32Fx2 = 82249,   439     Iop_Mul32Fx2 = 82249,
440     Iop_MulHi16Ux4 = 82250,   440     Iop_MulHi16Ux4 = 82250,
441     Iop_MulHi16Sx4 = 82251,   441     Iop_MulHi16Sx4 = 82251,
442     Iop_PolynomialMul8x8 = 82252,   442     Iop_PolynomialMul8x8 = 82252,
443     Iop_QDMulHi16Sx4 = 82253,   443     Iop_QDMulHi16Sx4 = 82253,
444     Iop_QDMulHi32Sx2 = 82254,   444     Iop_QDMulHi32Sx2 = 82254,
445     Iop_QRDMulHi16Sx4 = 82255,   445     Iop_QRDMulHi16Sx4 = 82255,
446     Iop_QRDMulHi32Sx2 = 82256,   446     Iop_QRDMulHi32Sx2 = 82256,
447     Iop_Avg8Ux8 = 82257,   447     Iop_Avg8Ux8 = 82257,
448     Iop_Avg16Ux4 = 82258,   448     Iop_Avg16Ux4 = 82258,
449     Iop_Max8Sx8 = 82259,   449     Iop_Max8Sx8 = 82259,
450     Iop_Max16Sx4 = 82260,   450     Iop_Max16Sx4 = 82260,
451     Iop_Max32Sx2 = 82261,   451     Iop_Max32Sx2 = 82261,
452     Iop_Max8Ux8 = 82262,   452     Iop_Max8Ux8 = 82262,
453     Iop_Max16Ux4 = 82263,   453     Iop_Max16Ux4 = 82263,
454     Iop_Max32Ux2 = 82264,   454     Iop_Max32Ux2 = 82264,
455     Iop_Min8Sx8 = 82265,   455     Iop_Min8Sx8 = 82265,
456     Iop_Min16Sx4 = 82266,   456     Iop_Min16Sx4 = 82266,
457     Iop_Min32Sx2 = 82267,   457     Iop_Min32Sx2 = 82267,
458     Iop_Min8Ux8 = 82268,   458     Iop_Min8Ux8 = 82268,
459     Iop_Min16Ux4 = 82269,   459     Iop_Min16Ux4 = 82269,
460     Iop_Min32Ux2 = 82270,   460     Iop_Min32Ux2 = 82270,
461     Iop_CmpEQ8x8 = 82271,   461     Iop_CmpEQ8x8 = 82271,
462     Iop_CmpEQ16x4 = 82272,   462     Iop_CmpEQ16x4 = 82272,
463     Iop_CmpEQ32x2 = 82273,   463     Iop_CmpEQ32x2 = 82273,
464     Iop_CmpGT8Ux8 = 82274,   464     Iop_CmpGT8Ux8 = 82274,
465     Iop_CmpGT16Ux4 = 82275,   465     Iop_CmpGT16Ux4 = 82275,
466     Iop_CmpGT32Ux2 = 82276,   466     Iop_CmpGT32Ux2 = 82276,
467     Iop_CmpGT8Sx8 = 82277,   467     Iop_CmpGT8Sx8 = 82277,
468     Iop_CmpGT16Sx4 = 82278,   468     Iop_CmpGT16Sx4 = 82278,
469     Iop_CmpGT32Sx2 = 82279,   469     Iop_CmpGT32Sx2 = 82279,
470     Iop_Cnt8x8 = 82280,   470     Iop_Cnt8x8 = 82280,
471     Iop_Clz8Sx8 = 82281,   471     Iop_Clz8Sx8 = 82281,
472     Iop_Clz16Sx4 = 82282,   472     Iop_Clz16Sx4 = 82282,
473     Iop_Clz32Sx2 = 82283,   473     Iop_Clz32Sx2 = 82283,
474     Iop_Cls8Sx8 = 82284,   474     Iop_Cls8Sx8 = 82284,
475     Iop_Cls16Sx4 = 82285,   475     Iop_Cls16Sx4 = 82285,
476     Iop_Cls32Sx2 = 82286,   476     Iop_Cls32Sx2 = 82286,
477     Iop_Shl8x8 = 82287,   477     Iop_Shl8x8 = 82287,
478     Iop_Shl16x4 = 82288,   478     Iop_Shl16x4 = 82288,
479     Iop_Shl32x2 = 82289,   479     Iop_Shl32x2 = 82289,
480     Iop_Shr8x8 = 82290,   480     Iop_Shr8x8 = 82290,
481     Iop_Shr16x4 = 82291,   481     Iop_Shr16x4 = 82291,
482     Iop_Shr32x2 = 82292,   482     Iop_Shr32x2 = 82292,
483     Iop_Sar8x8 = 82293,   483     Iop_Sar8x8 = 82293,
484     Iop_Sar16x4 = 82294,   484     Iop_Sar16x4 = 82294,
485     Iop_Sar32x2 = 82295,   485     Iop_Sar32x2 = 82295,
486     Iop_Sal8x8 = 82296,   486     Iop_Sal8x8 = 82296,
487     Iop_Sal16x4 = 82297,   487     Iop_Sal16x4 = 82297,
488     Iop_Sal32x2 = 82298,   488     Iop_Sal32x2 = 82298,
489     Iop_Sal64x1 = 82299,   489     Iop_Sal64x1 = 82299,
490     Iop_ShlN8x8 = 82300,   490     Iop_ShlN8x8 = 82300,
491     Iop_ShlN16x4 = 82301,   491     Iop_ShlN16x4 = 82301,
492     Iop_ShlN32x2 = 82302,   492     Iop_ShlN32x2 = 82302,
493     Iop_ShrN8x8 = 82303,   493     Iop_ShrN8x8 = 82303,
494     Iop_ShrN16x4 = 82304,   494     Iop_ShrN16x4 = 82304,
495     Iop_ShrN32x2 = 82305,   495     Iop_ShrN32x2 = 82305,
496     Iop_SarN8x8 = 82306,   496     Iop_SarN8x8 = 82306,
497     Iop_SarN16x4 = 82307,   497     Iop_SarN16x4 = 82307,
498     Iop_SarN32x2 = 82308,   498     Iop_SarN32x2 = 82308,
499     Iop_QShl8x8 = 82309,   499     Iop_QShl8x8 = 82309,
500     Iop_QShl16x4 = 82310,   500     Iop_QShl16x4 = 82310,
501     Iop_QShl32x2 = 82311,   501     Iop_QShl32x2 = 82311,
502     Iop_QShl64x1 = 82312,   502     Iop_QShl64x1 = 82312,
503     Iop_QSal8x8 = 82313,   503     Iop_QSal8x8 = 82313,
504     Iop_QSal16x4 = 82314,   504     Iop_QSal16x4 = 82314,
505     Iop_QSal32x2 = 82315,   505     Iop_QSal32x2 = 82315,
506     Iop_QSal64x1 = 82316,   506     Iop_QSal64x1 = 82316,
507     Iop_QShlN8Sx8 = 82317,   507     Iop_QShlN8Sx8 = 82317,
508     Iop_QShlN16Sx4 = 82318,   508     Iop_QShlN16Sx4 = 82318,
509     Iop_QShlN32Sx2 = 82319,   509     Iop_QShlN32Sx2 = 82319,
510     Iop_QShlN64Sx1 = 82320,   510     Iop_QShlN64Sx1 = 82320,
511     Iop_QShlN8x8 = 82321,   511     Iop_QShlN8x8 = 82321,
512     Iop_QShlN16x4 = 82322,   512     Iop_QShlN16x4 = 82322,
513     Iop_QShlN32x2 = 82323,   513     Iop_QShlN32x2 = 82323,
514     Iop_QShlN64x1 = 82324,   514     Iop_QShlN64x1 = 82324,
515     Iop_QSalN8x8 = 82325,   515     Iop_QSalN8x8 = 82325,
516     Iop_QSalN16x4 = 82326,   516     Iop_QSalN16x4 = 82326,
517     Iop_QSalN32x2 = 82327,   517     Iop_QSalN32x2 = 82327,
518     Iop_QSalN64x1 = 82328,   518     Iop_QSalN64x1 = 82328,
519     Iop_QNarrowBin16Sto8Ux8 = 82329,   519     Iop_QNarrowBin16Sto8Ux8 = 82329,
520     Iop_QNarrowBin16Sto8Sx8 = 82330,   520     Iop_QNarrowBin16Sto8Sx8 = 82330,
521     Iop_QNarrowBin32Sto16Sx4 = 82331,   521     Iop_QNarrowBin32Sto16Sx4 = 82331,
522     Iop_NarrowBin16to8x8 = 82332,   522     Iop_NarrowBin16to8x8 = 82332,
523     Iop_NarrowBin32to16x4 = 82333,   523     Iop_NarrowBin32to16x4 = 82333,
524     Iop_InterleaveHI8x8 = 82334,   524     Iop_InterleaveHI8x8 = 82334,
525     Iop_InterleaveHI16x4 = 82335,   525     Iop_InterleaveHI16x4 = 82335,
526     Iop_InterleaveHI32x2 = 82336,   526     Iop_InterleaveHI32x2 = 82336,
527     Iop_InterleaveLO8x8 = 82337,   527     Iop_InterleaveLO8x8 = 82337,
528     Iop_InterleaveLO16x4 = 82338,   528     Iop_InterleaveLO16x4 = 82338,
529     Iop_InterleaveLO32x2 = 82339,   529     Iop_InterleaveLO32x2 = 82339,
530     Iop_InterleaveOddLanes8x8 = 82340,   530     Iop_InterleaveOddLanes8x8 = 82340,
531     Iop_InterleaveEvenLanes8x8 = 82341,   531     Iop_InterleaveEvenLanes8x8 = 82341,
532     Iop_InterleaveOddLanes16x4 = 82342,   532     Iop_InterleaveOddLanes16x4 = 82342,
533     Iop_InterleaveEvenLanes16x4 = 82343,   533     Iop_InterleaveEvenLanes16x4 = 82343,
534     Iop_CatOddLanes8x8 = 82344,   534     Iop_CatOddLanes8x8 = 82344,
535     Iop_CatOddLanes16x4 = 82345,   535     Iop_CatOddLanes16x4 = 82345,
536     Iop_CatEvenLanes8x8 = 82346,   536     Iop_CatEvenLanes8x8 = 82346,
537     Iop_CatEvenLanes16x4 = 82347,   537     Iop_CatEvenLanes16x4 = 82347,
538     Iop_GetElem8x8 = 82348,   538     Iop_GetElem8x8 = 82348,
539     Iop_GetElem16x4 = 82349,   539     Iop_GetElem16x4 = 82349,
540     Iop_GetElem32x2 = 82350,   540     Iop_GetElem32x2 = 82350,
541     Iop_SetElem8x8 = 82351,   541     Iop_SetElem8x8 = 82351,
542     Iop_SetElem16x4 = 82352,   542     Iop_SetElem16x4 = 82352,
543     Iop_SetElem32x2 = 82353,   543     Iop_SetElem32x2 = 82353,
544     Iop_Dup8x8 = 82354,   544     Iop_Dup8x8 = 82354,
545     Iop_Dup16x4 = 82355,   545     Iop_Dup16x4 = 82355,
546     Iop_Dup32x2 = 82356,   546     Iop_Dup32x2 = 82356,
547     Iop_Extract64 = 82357,   547     Iop_Extract64 = 82357,
548     Iop_Reverse16_8x8 = 82358,   548     Iop_Reverse16_8x8 = 82358,
549     Iop_Reverse32_8x8 = 82359,   549     Iop_Reverse32_8x8 = 82359,
550     Iop_Reverse32_16x4 = 82360,   550     Iop_Reverse32_16x4 = 82360,
551     Iop_Reverse64_8x8 = 82361,   551     Iop_Reverse64_8x8 = 82361,
552     Iop_Reverse64_16x4 = 82362,   552     Iop_Reverse64_16x4 = 82362,
553     Iop_Reverse64_32x2 = 82363,   553     Iop_Reverse64_32x2 = 82363,
554     Iop_Perm8x8 = 82364,   554     Iop_Perm8x8 = 82364,
555     Iop_Recip32x2 = 82365,   555     Iop_Recip32x2 = 82365,
556     Iop_Rsqrte32x2 = 82366,   556     Iop_Rsqrte32x2 = 82366,
557     Iop_Add32Fx4 = 82367,   557     Iop_Add32Fx4 = 82367,
558     Iop_Sub32Fx4 = 82368,   558     Iop_Sub32Fx4 = 82368,
559     Iop_Mul32Fx4 = 82369,   559     Iop_Mul32Fx4 = 82369,
560     Iop_Div32Fx4 = 82370,   560     Iop_Div32Fx4 = 82370,
561     Iop_Max32Fx4 = 82371,   561     Iop_Max32Fx4 = 82371,
562     Iop_Min32Fx4 = 82372,   562     Iop_Min32Fx4 = 82372,
563     Iop_Add32Fx2 = 82373,   563     Iop_Add32Fx2 = 82373,
564     Iop_Sub32Fx2 = 82374,   564     Iop_Sub32Fx2 = 82374,
565     Iop_CmpEQ32Fx4 = 82375,   565     Iop_CmpEQ32Fx4 = 82375,
566     Iop_CmpLT32Fx4 = 82376,   566     Iop_CmpLT32Fx4 = 82376,
567     Iop_CmpLE32Fx4 = 82377,   567     Iop_CmpLE32Fx4 = 82377,
568     Iop_CmpUN32Fx4 = 82378,   568     Iop_CmpUN32Fx4 = 82378,
569     Iop_CmpGT32Fx4 = 82379,   569     Iop_CmpGT32Fx4 = 82379,
570     Iop_CmpGE32Fx4 = 82380,   570     Iop_CmpGE32Fx4 = 82380,
571     Iop_Abs32Fx4 = 82381,   571     Iop_Abs32Fx4 = 82381,
572     Iop_PwMax32Fx4 = 82382,   572     Iop_PwMax32Fx4 = 82382,
573     Iop_PwMin32Fx4 = 82383,   573     Iop_PwMin32Fx4 = 82383,
574     Iop_Sqrt32Fx4 = 82384,   574     Iop_Sqrt32Fx4 = 82384,
575     Iop_RSqrt32Fx4 = 82385,   575     Iop_RSqrt32Fx4 = 82385,
576     Iop_Neg32Fx4 = 82386,   576     Iop_Neg32Fx4 = 82386,
577     Iop_Recip32Fx4 = 82387,   577     Iop_Recip32Fx4 = 82387,
578     Iop_Recps32Fx4 = 82388,   578     Iop_Recps32Fx4 = 82388,
579     Iop_Rsqrte32Fx4 = 82389,   579     Iop_Rsqrte32Fx4 = 82389,
580     Iop_Rsqrts32Fx4 = 82390,   580     Iop_Rsqrts32Fx4 = 82390,
581     Iop_I32UtoFx4 = 82391,   581     Iop_I32UtoFx4 = 82391,
582     Iop_I32StoFx4 = 82392,   582     Iop_I32StoFx4 = 82392,
583     Iop_FtoI32Ux4_RZ = 82393,   583     Iop_FtoI32Ux4_RZ = 82393,
584     Iop_FtoI32Sx4_RZ = 82394,   584     Iop_FtoI32Sx4_RZ = 82394,
585     Iop_QFtoI32Ux4_RZ = 82395,   585     Iop_QFtoI32Ux4_RZ = 82395,
586     Iop_QFtoI32Sx4_RZ = 82396,   586     Iop_QFtoI32Sx4_RZ = 82396,
587     Iop_RoundF32x4_RM = 82397,   587     Iop_RoundF32x4_RM = 82397,
588     Iop_RoundF32x4_RP = 82398,   588     Iop_RoundF32x4_RP = 82398,
589     Iop_RoundF32x4_RN = 82399,   589     Iop_RoundF32x4_RN = 82399,
590     Iop_RoundF32x4_RZ = 82400,   590     Iop_RoundF32x4_RZ = 82400,
591     Iop_F32ToFixed32Ux4_RZ = 82401,   591     Iop_F32ToFixed32Ux4_RZ = 82401,
592     Iop_F32ToFixed32Sx4_RZ = 82402,   592     Iop_F32ToFixed32Sx4_RZ = 82402,
593     Iop_Fixed32UToF32x4_RN = 82403,   593     Iop_Fixed32UToF32x4_RN = 82403,
594     Iop_Fixed32SToF32x4_RN = 82404,   594     Iop_Fixed32SToF32x4_RN = 82404,
595     Iop_F32toF16x4 = 82405,   595     Iop_F32toF16x4 = 82405,
596     Iop_F16toF32x4 = 82406,   596     Iop_F16toF32x4 = 82406,
597     Iop_Add32F0x4 = 82407,   597     Iop_Add32F0x4 = 82407,
598     Iop_Sub32F0x4 = 82408,   598     Iop_Sub32F0x4 = 82408,
599     Iop_Mul32F0x4 = 82409,   599     Iop_Mul32F0x4 = 82409,
600     Iop_Div32F0x4 = 82410,   600     Iop_Div32F0x4 = 82410,
601     Iop_Max32F0x4 = 82411,   601     Iop_Max32F0x4 = 82411,
602     Iop_Min32F0x4 = 82412,   602     Iop_Min32F0x4 = 82412,
603     Iop_CmpEQ32F0x4 = 82413,   603     Iop_CmpEQ32F0x4 = 82413,
604     Iop_CmpLT32F0x4 = 82414,   604     Iop_CmpLT32F0x4 = 82414,
605     Iop_CmpLE32F0x4 = 82415,   605     Iop_CmpLE32F0x4 = 82415,
606     Iop_CmpUN32F0x4 = 82416,   606     Iop_CmpUN32F0x4 = 82416,
607     Iop_Recip32F0x4 = 82417,   607     Iop_Recip32F0x4 = 82417,
608     Iop_Sqrt32F0x4 = 82418,   608     Iop_Sqrt32F0x4 = 82418,
609     Iop_RSqrt32F0x4 = 82419,   609     Iop_RSqrt32F0x4 = 82419,
610     Iop_Add64Fx2 = 82420,   610     Iop_Add64Fx2 = 82420,
611     Iop_Sub64Fx2 = 82421,   611     Iop_Sub64Fx2 = 82421,
612     Iop_Mul64Fx2 = 82422,   612     Iop_Mul64Fx2 = 82422,
613     Iop_Div64Fx2 = 82423,   613     Iop_Div64Fx2 = 82423,
614     Iop_Max64Fx2 = 82424,   614     Iop_Max64Fx2 = 82424,
615     Iop_Min64Fx2 = 82425,   615     Iop_Min64Fx2 = 82425,
616     Iop_CmpEQ64Fx2 = 82426,   616     Iop_CmpEQ64Fx2 = 82426,
617     Iop_CmpLT64Fx2 = 82427,   617     Iop_CmpLT64Fx2 = 82427,
618     Iop_CmpLE64Fx2 = 82428,   618     Iop_CmpLE64Fx2 = 82428,
619     Iop_CmpUN64Fx2 = 82429,   619     Iop_CmpUN64Fx2 = 82429,
620     Iop_Recip64Fx2 = 82430,   620     Iop_Recip64Fx2 = 82430,
621     Iop_Sqrt64Fx2 = 82431,   621     Iop_Sqrt64Fx2 = 82431,
622     Iop_RSqrt64Fx2 = 82432,   622     Iop_RSqrt64Fx2 = 82432,
623     Iop_Add64F0x2 = 82433,   623     Iop_Add64F0x2 = 82433,
624     Iop_Sub64F0x2 = 82434,   624     Iop_Sub64F0x2 = 82434,
625     Iop_Mul64F0x2 = 82435,   625     Iop_Mul64F0x2 = 82435,
626     Iop_Div64F0x2 = 82436,   626     Iop_Div64F0x2 = 82436,
627     Iop_Max64F0x2 = 82437,   627     Iop_Max64F0x2 = 82437,
628     Iop_Min64F0x2 = 82438,   628     Iop_Min64F0x2 = 82438,
629     Iop_CmpEQ64F0x2 = 82439,   629     Iop_CmpEQ64F0x2 = 82439,
630     Iop_CmpLT64F0x2 = 82440,   630     Iop_CmpLT64F0x2 = 82440,
631     Iop_CmpLE64F0x2 = 82441,   631     Iop_CmpLE64F0x2 = 82441,
632     Iop_CmpUN64F0x2 = 82442,   632     Iop_CmpUN64F0x2 = 82442,
633     Iop_Recip64F0x2 = 82443,   633     Iop_Recip64F0x2 = 82443,
634     Iop_Sqrt64F0x2 = 82444,   634     Iop_Sqrt64F0x2 = 82444,
635     Iop_RSqrt64F0x2 = 82445,   635     Iop_RSqrt64F0x2 = 82445,
636     Iop_V128to64 = 82446,   636     Iop_V128to64 = 82446,
637     Iop_V128HIto64 = 82447,   637     Iop_V128HIto64 = 82447,
638     Iop_64HLtoV128 = 82448,   638     Iop_64HLtoV128 = 82448,
639     Iop_64UtoV128 = 82449,   639     Iop_64UtoV128 = 82449,
640     Iop_SetV128lo64 = 82450,   640     Iop_SetV128lo64 = 82450,
641     Iop_32UtoV128 = 82451,   641     Iop_32UtoV128 = 82451,
642     Iop_V128to32 = 82452,   642     Iop_V128to32 = 82452,
643     Iop_SetV128lo32 = 82453,   643     Iop_SetV128lo32 = 82453,
644     Iop_NotV128 = 82454,   644     Iop_NotV128 = 82454,
645     Iop_AndV128 = 82455,   645     Iop_AndV128 = 82455,
646     Iop_OrV128 = 82456,   646     Iop_OrV128 = 82456,
647     Iop_XorV128 = 82457,   647     Iop_XorV128 = 82457,
648     Iop_ShlV128 = 82458,   648     Iop_ShlV128 = 82458,
649     Iop_ShrV128 = 82459,   649     Iop_ShrV128 = 82459,
650     Iop_CmpNEZ8x16 = 82460,   650     Iop_CmpNEZ8x16 = 82460,
651     Iop_CmpNEZ16x8 = 82461,   651     Iop_CmpNEZ16x8 = 82461,
652     Iop_CmpNEZ32x4 = 82462,   652     Iop_CmpNEZ32x4 = 82462,
653     Iop_CmpNEZ64x2 = 82463,   653     Iop_CmpNEZ64x2 = 82463,
654     Iop_Add8x16 = 82464,   654     Iop_Add8x16 = 82464,
655     Iop_Add16x8 = 82465,   655     Iop_Add16x8 = 82465,
656     Iop_Add32x4 = 82466,   656     Iop_Add32x4 = 82466,
657     Iop_Add64x2 = 82467,   657     Iop_Add64x2 = 82467,
658     Iop_QAdd8Ux16 = 82468,   658     Iop_QAdd8Ux16 = 82468,
659     Iop_QAdd16Ux8 = 82469,   659     Iop_QAdd16Ux8 = 82469,
660     Iop_QAdd32Ux4 = 82470,   660     Iop_QAdd32Ux4 = 82470,
661     Iop_QAdd64Ux2 = 82471,   661     Iop_QAdd64Ux2 = 82471,
662     Iop_QAdd8Sx16 = 82472,   662     Iop_QAdd8Sx16 = 82472,
663     Iop_QAdd16Sx8 = 82473,   663     Iop_QAdd16Sx8 = 82473,
664     Iop_QAdd32Sx4 = 82474,   664     Iop_QAdd32Sx4 = 82474,
665     Iop_QAdd64Sx2 = 82475,   665     Iop_QAdd64Sx2 = 82475,
666     Iop_Sub8x16 = 82476,   666     Iop_Sub8x16 = 82476,
667     Iop_Sub16x8 = 82477,   667     Iop_Sub16x8 = 82477,
668     Iop_Sub32x4 = 82478,   668     Iop_Sub32x4 = 82478,
669     Iop_Sub64x2 = 82479,   669     Iop_Sub64x2 = 82479,
670     Iop_QSub8Ux16 = 82480,   670     Iop_QSub8Ux16 = 82480,
671     Iop_QSub16Ux8 = 82481,   671     Iop_QSub16Ux8 = 82481,
672     Iop_QSub32Ux4 = 82482,   672     Iop_QSub32Ux4 = 82482,
673     Iop_QSub64Ux2 = 82483,   673     Iop_QSub64Ux2 = 82483,
674     Iop_QSub8Sx16 = 82484,   674     Iop_QSub8Sx16 = 82484,
675     Iop_QSub16Sx8 = 82485,   675     Iop_QSub16Sx8 = 82485,
676     Iop_QSub32Sx4 = 82486,   676     Iop_QSub32Sx4 = 82486,
677     Iop_QSub64Sx2 = 82487,   677     Iop_QSub64Sx2 = 82487,
678     Iop_Mul8x16 = 82488,   678     Iop_Mul8x16 = 82488,
679     Iop_Mul16x8 = 82489,   679     Iop_Mul16x8 = 82489,
680     Iop_Mul32x4 = 82490,   680     Iop_Mul32x4 = 82490,
681     Iop_MulHi16Ux8 = 82491,   681     Iop_MulHi16Ux8 = 82491,
682     Iop_MulHi32Ux4 = 82492,   682     Iop_MulHi32Ux4 = 82492,
683     Iop_MulHi16Sx8 = 82493,   683     Iop_MulHi16Sx8 = 82493,
684     Iop_MulHi32Sx4 = 82494,   684     Iop_MulHi32Sx4 = 82494,
685     Iop_MullEven8Ux16 = 82495,   685     Iop_MullEven8Ux16 = 82495,
686     Iop_MullEven16Ux8 = 82496,   686     Iop_MullEven16Ux8 = 82496,
687     Iop_MullEven8Sx16 = 82497,   687     Iop_MullEven8Sx16 = 82497,
688     Iop_MullEven16Sx8 = 82498,   688     Iop_MullEven16Sx8 = 82498,
689     Iop_Mull8Ux8 = 82499,   689     Iop_Mull8Ux8 = 82499,
690     Iop_Mull8Sx8 = 82500,   690     Iop_Mull8Sx8 = 82500,
691     Iop_Mull16Ux4 = 82501,   691     Iop_Mull16Ux4 = 82501,
692     Iop_Mull16Sx4 = 82502,   692     Iop_Mull16Sx4 = 82502,
693     Iop_Mull32Ux2 = 82503,   693     Iop_Mull32Ux2 = 82503,
694     Iop_Mull32Sx2 = 82504,   694     Iop_Mull32Sx2 = 82504,
695     Iop_QDMulHi16Sx8 = 82505,   695     Iop_QDMulHi16Sx8 = 82505,
696     Iop_QDMulHi32Sx4 = 82506,   696     Iop_QDMulHi32Sx4 = 82506,
697     Iop_QRDMulHi16Sx8 = 82507,   697     Iop_QRDMulHi16Sx8 = 82507,
698     Iop_QRDMulHi32Sx4 = 82508,   698     Iop_QRDMulHi32Sx4 = 82508,
699     Iop_QDMulLong16Sx4 = 82509,   699     Iop_QDMulLong16Sx4 = 82509,
700     Iop_QDMulLong32Sx2 = 82510,   700     Iop_QDMulLong32Sx2 = 82510,
701     Iop_PolynomialMul8x16 = 82511,   701     Iop_PolynomialMul8x16 = 82511,
702     Iop_PolynomialMull8x8 = 82512,   702     Iop_PolynomialMull8x8 = 82512,
703     Iop_PwAdd8x16 = 82513,   703     Iop_PwAdd8x16 = 82513,
704     Iop_PwAdd16x8 = 82514,   704     Iop_PwAdd16x8 = 82514,
705     Iop_PwAdd32x4 = 82515,   705     Iop_PwAdd32x4 = 82515,
706     Iop_PwAdd32Fx2 = 82516,   706     Iop_PwAdd32Fx2 = 82516,
707     Iop_PwAddL8Ux16 = 82517,   707     Iop_PwAddL8Ux16 = 82517,
708     Iop_PwAddL16Ux8 = 82518,   708     Iop_PwAddL16Ux8 = 82518,
709     Iop_PwAddL32Ux4 = 82519,   709     Iop_PwAddL32Ux4 = 82519,
710     Iop_PwAddL8Sx16 = 82520,   710     Iop_PwAddL8Sx16 = 82520,
711     Iop_PwAddL16Sx8 = 82521,   711     Iop_PwAddL16Sx8 = 82521,
712     Iop_PwAddL32Sx4 = 82522,   712     Iop_PwAddL32Sx4 = 82522,
713     Iop_Abs8x16 = 82523,   713     Iop_Abs8x16 = 82523,
714     Iop_Abs16x8 = 82524,   714     Iop_Abs16x8 = 82524,
715     Iop_Abs32x4 = 82525,   715     Iop_Abs32x4 = 82525,
716     Iop_Avg8Ux16 = 82526,   716     Iop_Avg8Ux16 = 82526,
717     Iop_Avg16Ux8 = 82527,   717     Iop_Avg16Ux8 = 82527,
718     Iop_Avg32Ux4 = 82528,   718     Iop_Avg32Ux4 = 82528,
719     Iop_Avg8Sx16 = 82529,   719     Iop_Avg8Sx16 = 82529,
720     Iop_Avg16Sx8 = 82530,   720     Iop_Avg16Sx8 = 82530,
721     Iop_Avg32Sx4 = 82531,   721     Iop_Avg32Sx4 = 82531,
722     Iop_Max8Sx16 = 82532,   722     Iop_Max8Sx16 = 82532,
723     Iop_Max16Sx8 = 82533,   723     Iop_Max16Sx8 = 82533,
724     Iop_Max32Sx4 = 82534,   724     Iop_Max32Sx4 = 82534,
725     Iop_Max8Ux16 = 82535,   725     Iop_Max8Ux16 = 82535,
726     Iop_Max16Ux8 = 82536,   726     Iop_Max16Ux8 = 82536,
727     Iop_Max32Ux4 = 82537,   727     Iop_Max32Ux4 = 82537,
728     Iop_Min8Sx16 = 82538,   728     Iop_Min8Sx16 = 82538,
729     Iop_Min16Sx8 = 82539,   729     Iop_Min16Sx8 = 82539,
730     Iop_Min32Sx4 = 82540,   730     Iop_Min32Sx4 = 82540,
731     Iop_Min8Ux16 = 82541,   731     Iop_Min8Ux16 = 82541,
732     Iop_Min16Ux8 = 82542,   732     Iop_Min16Ux8 = 82542,
733     Iop_Min32Ux4 = 82543,   733     Iop_Min32Ux4 = 82543,
734     Iop_CmpEQ8x16 = 82544,   734     Iop_CmpEQ8x16 = 82544,
735     Iop_CmpEQ16x8 = 82545,   735     Iop_CmpEQ16x8 = 82545,
736     Iop_CmpEQ32x4 = 82546,   736     Iop_CmpEQ32x4 = 82546,
737     Iop_CmpEQ64x2 = 82547,   737     Iop_CmpEQ64x2 = 82547,
738     Iop_CmpGT8Sx16 = 82548,   738     Iop_CmpGT8Sx16 = 82548,
739     Iop_CmpGT16Sx8 = 82549,   739     Iop_CmpGT16Sx8 = 82549,
740     Iop_CmpGT32Sx4 = 82550,   740     Iop_CmpGT32Sx4 = 82550,
741     Iop_CmpGT64Sx2 = 82551,   741     Iop_CmpGT64Sx2 = 82551,
742     Iop_CmpGT8Ux16 = 82552,   742     Iop_CmpGT8Ux16 = 82552,
743     Iop_CmpGT16Ux8 = 82553,   743     Iop_CmpGT16Ux8 = 82553,
744     Iop_CmpGT32Ux4 = 82554,   744     Iop_CmpGT32Ux4 = 82554,
745     Iop_Cnt8x16 = 82555,   745     Iop_Cnt8x16 = 82555,
746     Iop_Clz8Sx16 = 82556,   746     Iop_Clz8Sx16 = 82556,
747     Iop_Clz16Sx8 = 82557,   747     Iop_Clz16Sx8 = 82557,
748     Iop_Clz32Sx4 = 82558,   748     Iop_Clz32Sx4 = 82558,
749     Iop_Cls8Sx16 = 82559,   749     Iop_Cls8Sx16 = 82559,
750     Iop_Cls16Sx8 = 82560,   750     Iop_Cls16Sx8 = 82560,
751     Iop_Cls32Sx4 = 82561,   751     Iop_Cls32Sx4 = 82561,
752     Iop_ShlN8x16 = 82562,   752     Iop_ShlN8x16 = 82562,
753     Iop_ShlN16x8 = 82563,   753     Iop_ShlN16x8 = 82563,
754     Iop_ShlN32x4 = 82564,   754     Iop_ShlN32x4 = 82564,
755     Iop_ShlN64x2 = 82565,   755     Iop_ShlN64x2 = 82565,
756     Iop_ShrN8x16 = 82566,   756     Iop_ShrN8x16 = 82566,
757     Iop_ShrN16x8 = 82567,   757     Iop_ShrN16x8 = 82567,
758     Iop_ShrN32x4 = 82568,   758     Iop_ShrN32x4 = 82568,
759     Iop_ShrN64x2 = 82569,   759     Iop_ShrN64x2 = 82569,
760     Iop_SarN8x16 = 82570,   760     Iop_SarN8x16 = 82570,
761     Iop_SarN16x8 = 82571,   761     Iop_SarN16x8 = 82571,
762     Iop_SarN32x4 = 82572,   762     Iop_SarN32x4 = 82572,
763     Iop_SarN64x2 = 82573,   763     Iop_SarN64x2 = 82573,
764     Iop_Shl8x16 = 82574,   764     Iop_Shl8x16 = 82574,
765     Iop_Shl16x8 = 82575,   765     Iop_Shl16x8 = 82575,
766     Iop_Shl32x4 = 82576,   766     Iop_Shl32x4 = 82576,
767     Iop_Shl64x2 = 82577,   767     Iop_Shl64x2 = 82577,
768     Iop_Shr8x16 = 82578,   768     Iop_Shr8x16 = 82578,
769     Iop_Shr16x8 = 82579,   769     Iop_Shr16x8 = 82579,
770     Iop_Shr32x4 = 82580,   770     Iop_Shr32x4 = 82580,
771     Iop_Shr64x2 = 82581,   771     Iop_Shr64x2 = 82581,
772     Iop_Sar8x16 = 82582,   772     Iop_Sar8x16 = 82582,
773     Iop_Sar16x8 = 82583,   773     Iop_Sar16x8 = 82583,
774     Iop_Sar32x4 = 82584,   774     Iop_Sar32x4 = 82584,
775     Iop_Sar64x2 = 82585,   775     Iop_Sar64x2 = 82585,
776     Iop_Sal8x16 = 82586,   776     Iop_Sal8x16 = 82586,
777     Iop_Sal16x8 = 82587,   777     Iop_Sal16x8 = 82587,
778     Iop_Sal32x4 = 82588,   778     Iop_Sal32x4 = 82588,
779     Iop_Sal64x2 = 82589,   779     Iop_Sal64x2 = 82589,
780     Iop_Rol8x16 = 82590,   780     Iop_Rol8x16 = 82590,
781     Iop_Rol16x8 = 82591,   781     Iop_Rol16x8 = 82591,
782     Iop_Rol32x4 = 82592,   782     Iop_Rol32x4 = 82592,
783     Iop_QShl8x16 = 82593,   783     Iop_QShl8x16 = 82593,
784     Iop_QShl16x8 = 82594,   784     Iop_QShl16x8 = 82594,
785     Iop_QShl32x4 = 82595,   785     Iop_QShl32x4 = 82595,
786     Iop_QShl64x2 = 82596,   786     Iop_QShl64x2 = 82596,
787     Iop_QSal8x16 = 82597,   787     Iop_QSal8x16 = 82597,
788     Iop_QSal16x8 = 82598,   788     Iop_QSal16x8 = 82598,
789     Iop_QSal32x4 = 82599,   789     Iop_QSal32x4 = 82599,
790     Iop_QSal64x2 = 82600,   790     Iop_QSal64x2 = 82600,
791     Iop_QShlN8Sx16 = 82601,   791     Iop_QShlN8Sx16 = 82601,
792     Iop_QShlN16Sx8 = 82602,   792     Iop_QShlN16Sx8 = 82602,
793     Iop_QShlN32Sx4 = 82603,   793     Iop_QShlN32Sx4 = 82603,
794     Iop_QShlN64Sx2 = 82604,   794     Iop_QShlN64Sx2 = 82604,
795     Iop_QShlN8x16 = 82605,   795     Iop_QShlN8x16 = 82605,
796     Iop_QShlN16x8 = 82606,   796     Iop_QShlN16x8 = 82606,
797     Iop_QShlN32x4 = 82607,   797     Iop_QShlN32x4 = 82607,
798     Iop_QShlN64x2 = 82608,   798     Iop_QShlN64x2 = 82608,
799     Iop_QSalN8x16 = 82609,   799     Iop_QSalN8x16 = 82609,
800     Iop_QSalN16x8 = 82610,   800     Iop_QSalN16x8 = 82610,
801     Iop_QSalN32x4 = 82611,   801     Iop_QSalN32x4 = 82611,
802     Iop_QSalN64x2 = 82612,   802     Iop_QSalN64x2 = 82612,
803     Iop_QNarrowBin16Sto8Ux16 = 82613,   803     Iop_QNarrowBin16Sto8Ux16 = 82613,
804     Iop_QNarrowBin32Sto16Ux8 = 82614,   804     Iop_QNarrowBin32Sto16Ux8 = 82614,
805     Iop_QNarrowBin16Sto8Sx16 = 82615,   805     Iop_QNarrowBin16Sto8Sx16 = 82615,
806     Iop_QNarrowBin32Sto16Sx8 = 82616,   806     Iop_QNarrowBin32Sto16Sx8 = 82616,
807     Iop_QNarrowBin16Uto8Ux16 = 82617,   807     Iop_QNarrowBin16Uto8Ux16 = 82617,
808     Iop_QNarrowBin32Uto16Ux8 = 82618,   808     Iop_QNarrowBin32Uto16Ux8 = 82618,
809     Iop_NarrowBin16to8x16 = 82619,   809     Iop_NarrowBin16to8x16 = 82619,
810     Iop_NarrowBin32to16x8 = 82620,   810     Iop_NarrowBin32to16x8 = 82620,
811     Iop_NarrowUn16to8x8 = 82621,   811     Iop_NarrowUn16to8x8 = 82621,
812     Iop_NarrowUn32to16x4 = 82622,   812     Iop_NarrowUn32to16x4 = 82622,
813     Iop_NarrowUn64to32x2 = 82623,   813     Iop_NarrowUn64to32x2 = 82623,
814     Iop_QNarrowUn16Sto8Sx8 = 82624,   814     Iop_QNarrowUn16Sto8Sx8 = 82624,
815     Iop_QNarrowUn32Sto16Sx4 = 82625,   815     Iop_QNarrowUn32Sto16Sx4 = 82625,
816     Iop_QNarrowUn64Sto32Sx2 = 82626,   816     Iop_QNarrowUn64Sto32Sx2 = 82626,
817     Iop_QNarrowUn16Sto8Ux8 = 82627,   817     Iop_QNarrowUn16Sto8Ux8 = 82627,
818     Iop_QNarrowUn32Sto16Ux4 = 82628,   818     Iop_QNarrowUn32Sto16Ux4 = 82628,
819     Iop_QNarrowUn64Sto32Ux2 = 82629,   819     Iop_QNarrowUn64Sto32Ux2 = 82629,
820     Iop_QNarrowUn16Uto8Ux8 = 82630,   820     Iop_QNarrowUn16Uto8Ux8 = 82630,
821     Iop_QNarrowUn32Uto16Ux4 = 82631,   821     Iop_QNarrowUn32Uto16Ux4 = 82631,
822     Iop_QNarrowUn64Uto32Ux2 = 82632,   822     Iop_QNarrowUn64Uto32Ux2 = 82632,
823     Iop_Widen8Uto16x8 = 82633,   823     Iop_Widen8Uto16x8 = 82633,
824     Iop_Widen16Uto32x4 = 82634,   824     Iop_Widen16Uto32x4 = 82634,
825     Iop_Widen32Uto64x2 = 82635,   825     Iop_Widen32Uto64x2 = 82635,
826     Iop_Widen8Sto16x8 = 82636,   826     Iop_Widen8Sto16x8 = 82636,
827     Iop_Widen16Sto32x4 = 82637,   827     Iop_Widen16Sto32x4 = 82637,
828     Iop_Widen32Sto64x2 = 82638,   828     Iop_Widen32Sto64x2 = 82638,
829     Iop_InterleaveHI8x16 = 82639,   829     Iop_InterleaveHI8x16 = 82639,
830     Iop_InterleaveHI16x8 = 82640,   830     Iop_InterleaveHI16x8 = 82640,
831     Iop_InterleaveHI32x4 = 82641,   831     Iop_InterleaveHI32x4 = 82641,
832     Iop_InterleaveHI64x2 = 82642,   832     Iop_InterleaveHI64x2 = 82642,
833     Iop_InterleaveLO8x16 = 82643,   833     Iop_InterleaveLO8x16 = 82643,
834     Iop_InterleaveLO16x8 = 82644,   834     Iop_InterleaveLO16x8 = 82644,
835     Iop_InterleaveLO32x4 = 82645,   835     Iop_InterleaveLO32x4 = 82645,
836     Iop_InterleaveLO64x2 = 82646,   836     Iop_InterleaveLO64x2 = 82646,
837     Iop_InterleaveOddLanes8x16 = 82647,   837     Iop_InterleaveOddLanes8x16 = 82647,
838     Iop_InterleaveEvenLanes8x16 = 82648,   838     Iop_InterleaveEvenLanes8x16 = 82648,
839     Iop_InterleaveOddLanes16x8 = 82649,   839     Iop_InterleaveOddLanes16x8 = 82649,
840     Iop_InterleaveEvenLanes16x8 = 82650,   840     Iop_InterleaveEvenLanes16x8 = 82650,
841     Iop_InterleaveOddLanes32x4 = 82651,   841     Iop_InterleaveOddLanes32x4 = 82651,
842     Iop_InterleaveEvenLanes32x4 = 82652,   842     Iop_InterleaveEvenLanes32x4 = 82652,
843     Iop_CatOddLanes8x16 = 82653,   843     Iop_CatOddLanes8x16 = 82653,
844     Iop_CatOddLanes16x8 = 82654,   844     Iop_CatOddLanes16x8 = 82654,
845     Iop_CatOddLanes32x4 = 82655,   845     Iop_CatOddLanes32x4 = 82655,
846     Iop_CatEvenLanes8x16 = 82656,   846     Iop_CatEvenLanes8x16 = 82656,
847     Iop_CatEvenLanes16x8 = 82657,   847     Iop_CatEvenLanes16x8 = 82657,
848     Iop_CatEvenLanes32x4 = 82658,   848     Iop_CatEvenLanes32x4 = 82658,
849     Iop_GetElem8x16 = 82659,   849     Iop_GetElem8x16 = 82659,
850     Iop_GetElem16x8 = 82660,   850     Iop_GetElem16x8 = 82660,
851     Iop_GetElem32x4 = 82661,   851     Iop_GetElem32x4 = 82661,
852     Iop_GetElem64x2 = 82662,   852     Iop_GetElem64x2 = 82662,
853     Iop_Dup8x16 = 82663,   853     Iop_Dup8x16 = 82663,
854     Iop_Dup16x8 = 82664,   854     Iop_Dup16x8 = 82664,
855     Iop_Dup32x4 = 82665,   855     Iop_Dup32x4 = 82665,
856     Iop_ExtractV128 = 82666,   856     Iop_ExtractV128 = 82666,
857     Iop_Reverse16_8x16 = 82667,   857     Iop_Reverse16_8x16 = 82667,
858     Iop_Reverse32_8x16 = 82668,   858     Iop_Reverse32_8x16 = 82668,
859     Iop_Reverse32_16x8 = 82669,   859     Iop_Reverse32_16x8 = 82669,
860     Iop_Reverse64_8x16 = 82670,   860     Iop_Reverse64_8x16 = 82670,
861     Iop_Reverse64_16x8 = 82671,   861     Iop_Reverse64_16x8 = 82671,
862     Iop_Reverse64_32x4 = 82672,   862     Iop_Reverse64_32x4 = 82672,
863     Iop_Perm8x16 = 82673,   863     Iop_Perm8x16 = 82673,
864     Iop_Recip32x4 = 82674,   864     Iop_Recip32x4 = 82674,
865     Iop_Rsqrte32x4 = 82675   865     Iop_Rsqrte32x4 = 82675
866 } ;   866 } ;
867 typedef enum __anonenum_IROp_10 IROp;   867 typedef enum __anonenum_IROp_10 IROp;
868 enum __anonenum_IRRoundingMode_11 {   868 enum __anonenum_IRRoundingMode_11 {
869     Irrm_NEAREST = 0,   869     Irrm_NEAREST = 0,
870     Irrm_NegINF = 1,   870     Irrm_NegINF = 1,
871     Irrm_PosINF = 2,   871     Irrm_PosINF = 2,
872     Irrm_ZERO = 3   872     Irrm_ZERO = 3
873 } ;   873 } ;
874 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;   874 typedef enum __anonenum_IRRoundingMode_11 IRRoundingMode;
875 enum __anonenum_IRCmpF64Result_12 {   875 enum __anonenum_IRCmpF64Result_12 {
876     Ircr_UN = 69,   876     Ircr_UN = 69,
877     Ircr_LT = 1,   877     Ircr_LT = 1,
878     Ircr_GT = 0,   878     Ircr_GT = 0,
879     Ircr_EQ = 64   879     Ircr_EQ = 64
880 } ;   880 } ;
881 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;   881 typedef enum __anonenum_IRCmpF64Result_12 IRCmpF64Result;
882 typedef IRCmpF64Result IRCmpF32Result;   882 typedef IRCmpF64Result IRCmpF32Result;
883 typedef IRCmpF64Result IRCmpF128Result;   883 typedef IRCmpF64Result IRCmpF128Result;
884 enum __anonenum_IRExprTag_13 {   884 enum __anonenum_IRExprTag_13 {
885     Iex_Binder = 86016,   885     Iex_Binder = 86016,
886     Iex_Get = 86017,   886     Iex_Get = 86017,
887     Iex_GetI = 86018,   887     Iex_GetI = 86018,
888     Iex_RdTmp = 86019,   888     Iex_RdTmp = 86019,
889     Iex_Qop = 86020,   889     Iex_Qop = 86020,
890     Iex_Triop = 86021,   890     Iex_Triop = 86021,
891     Iex_Binop = 86022,   891     Iex_Binop = 86022,
892     Iex_Unop = 86023,   892     Iex_Unop = 86023,
893     Iex_Load = 86024,   893     Iex_Load = 86024,
894     Iex_Const = 86025,   894     Iex_Const = 86025,
895     Iex_Mux0X = 86026,   895     Iex_Mux0X = 86026,
896     Iex_CCall = 86027   896     Iex_CCall = 86027
897 } ;   897 } ;
898 typedef enum __anonenum_IRExprTag_13 IRExprTag;   898 typedef enum __anonenum_IRExprTag_13 IRExprTag;
899 struct _IRExpr;   899 struct _IRExpr;
900 typedef struct _IRExpr IRExpr;   900 typedef struct _IRExpr IRExpr;
901 struct __anonstruct_Binder_15 {   901 struct __anonstruct_Binder_15 {
902    Int binder ;   902    Int binder ;
903 };   903 };
904 struct __anonstruct_Get_16 {   904 struct __anonstruct_Get_16 {
905    Int offset ;   905    Int offset ;
906    IRType ty ;   906    IRType ty ;
907 };   907 };
908 struct __anonstruct_GetI_17 {   908 struct __anonstruct_GetI_17 {
909    IRRegArray *descr ;   909    IRRegArray *descr ;
910    IRExpr *ix ;   910    IRExpr *ix ;
911    Int bias ;   911    Int bias ;
912 };   912 };
913 struct __anonstruct_RdTmp_18 {   913 struct __anonstruct_RdTmp_18 {
914    IRTemp tmp ;   914    IRTemp tmp ;
915 };   915 };
916 struct __anonstruct_Qop_19 {   916 struct __anonstruct_Qop_19 {
917    IROp op ;   917    IROp op ;
918    IRExpr *arg1 ;   918    IRExpr *arg1 ;
919    IRExpr *arg2 ;   919    IRExpr *arg2 ;
920    IRExpr *arg3 ;   920    IRExpr *arg3 ;
921    IRExpr *arg4 ;   921    IRExpr *arg4 ;
922 };   922 };
923 struct __anonstruct_Triop_20 {   923 struct __anonstruct_Triop_20 {
924    IROp op ;   924    IROp op ;
925    IRExpr *arg1 ;   925    IRExpr *arg1 ;
926    IRExpr *arg2 ;   926    IRExpr *arg2 ;
927    IRExpr *arg3 ;   927    IRExpr *arg3 ;
928 };   928 };
929 struct __anonstruct_Binop_21 {   929 struct __anonstruct_Binop_21 {
930    IROp op ;   930    IROp op ;
931    IRExpr *arg1 ;   931    IRExpr *arg1 ;
932    IRExpr *arg2 ;   932    IRExpr *arg2 ;
933 };   933 };
934 struct __anonstruct_Unop_22 {   934 struct __anonstruct_Unop_22 {
935    IROp op ;   935    IROp op ;
936    IRExpr *arg ;   936    IRExpr *arg ;
937 };   937 };
938 struct __anonstruct_Load_23 {   938 struct __anonstruct_Load_23 {
939    IREndness end ;   939    IREndness end ;
940    IRType ty ;   940    IRType ty ;
941    IRExpr *addr ;   941    IRExpr *addr ;
942 };   942 };
943 struct __anonstruct_Const_24 {   943 struct __anonstruct_Const_24 {
944    IRConst *con ;   944    IRConst *con ;
945 };   945 };
946 struct __anonstruct_CCall_25 {   946 struct __anonstruct_CCall_25 {
947    IRCallee *cee ;   947    IRCallee *cee ;
948    IRType retty ;   948    IRType retty ;
949    IRExpr **args ;   949    IRExpr **args ;
950 };   950 };
951 struct __anonstruct_Mux0X_26 {   951 struct __anonstruct_Mux0X_26 {
952    IRExpr *cond ;   952    IRExpr *cond ;
953    IRExpr *expr0 ;   953    IRExpr *expr0 ;
954    IRExpr *exprX ;   954    IRExpr *exprX ;
955 };   955 };
956 union __anonunion_Iex_14 {   956 union __anonunion_Iex_14 {
957    struct __anonstruct_Binder_15 Binder ;   957    struct __anonstruct_Binder_15 Binder ;
958    struct __anonstruct_Get_16 Get ;   958    struct __anonstruct_Get_16 Get ;
959    struct __anonstruct_GetI_17 GetI ;   959    struct __anonstruct_GetI_17 GetI ;
960    struct __anonstruct_RdTmp_18 RdTmp ;   960    struct __anonstruct_RdTmp_18 RdTmp ;
961    struct __anonstruct_Qop_19 Qop ;   961    struct __anonstruct_Qop_19 Qop ;
962    struct __anonstruct_Triop_20 Triop ;   962    struct __anonstruct_Triop_20 Triop ;
963    struct __anonstruct_Binop_21 Binop ;   963    struct __anonstruct_Binop_21 Binop ;
964    struct __anonstruct_Unop_22 Unop ;   964    struct __anonstruct_Unop_22 Unop ;
965    struct __anonstruct_Load_23 Load ;   965    struct __anonstruct_Load_23 Load ;
966    struct __anonstruct_Const_24 Const ;   966    struct __anonstruct_Const_24 Const ;
967    struct __anonstruct_CCall_25 CCall ;   967    struct __anonstruct_CCall_25 CCall ;
968    struct __anonstruct_Mux0X_26 Mux0X ;   968    struct __anonstruct_Mux0X_26 Mux0X ;
969 };   969 };
970 struct _IRExpr {   970 struct _IRExpr {
971    IRExprTag tag ;   971    IRExprTag tag ;
972    union __anonunion_Iex_14 Iex ;   972    union __anonunion_Iex_14 Iex ;
973 };   973 };
974 enum __anonenum_IRJumpKind_27 {   974 enum __anonenum_IRJumpKind_27 {
975     Ijk_Boring = 90112,   975     Ijk_Boring = 90112,
976     Ijk_Call = 90113,   976     Ijk_Call = 90113,
977     Ijk_Ret = 90114,   977     Ijk_Ret = 90114,
978     Ijk_ClientReq = 90115,   978     Ijk_ClientReq = 90115,
979     Ijk_Yield = 90116,   979     Ijk_Yield = 90116,
980     Ijk_EmWarn = 90117,   980     Ijk_EmWarn = 90117,
981     Ijk_EmFail = 90118,   981     Ijk_EmFail = 90118,
982     Ijk_NoDecode = 90119,   982     Ijk_NoDecode = 90119,
983     Ijk_MapFail = 90120,   983     Ijk_MapFail = 90120,
984     Ijk_TInval = 90121,   984     Ijk_TInval = 90121,
985     Ijk_NoRedir = 90122,   985     Ijk_NoRedir = 90122,
986     Ijk_SigTRAP = 90123,   986     Ijk_SigTRAP = 90123,
987     Ijk_SigSEGV = 90124,   987     Ijk_SigSEGV = 90124,
988     Ijk_SigBUS = 90125,   988     Ijk_SigBUS = 90125,
989     Ijk_Sys_syscall = 90126,   989     Ijk_Sys_syscall = 90126,
990     Ijk_Sys_int32 = 90127,   990     Ijk_Sys_int32 = 90127,
991     Ijk_Sys_int128 = 90128,   991     Ijk_Sys_int128 = 90128,
992     Ijk_Sys_int129 = 90129,   992     Ijk_Sys_int129 = 90129,
993     Ijk_Sys_int130 = 90130,   993     Ijk_Sys_int130 = 90130,
994     Ijk_Sys_sysenter = 90131   994     Ijk_Sys_sysenter = 90131
995 } ;   995 } ;
996 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;   996 typedef enum __anonenum_IRJumpKind_27 IRJumpKind;
997 enum __anonenum_IREffect_28 {   997 enum __anonenum_IREffect_28 {
998     Ifx_None = 94208,   998     Ifx_None = 94208,
999     Ifx_Read = 94209,   999     Ifx_Read = 94209,
1000     Ifx_Write = 94210,   1000     Ifx_Write = 94210,
1001     Ifx_Modify = 94211   1001     Ifx_Modify = 94211
1002 } ;   1002 } ;
1003 typedef enum __anonenum_IREffect_28 IREffect;   1003 typedef enum __anonenum_IREffect_28 IREffect;
1004 struct __anonstruct_fxState_30 {   1004 struct __anonstruct_fxState_30 {
1005    IREffect fx ;   1005    IREffect fx ;
1006    Int offset ;   1006    Int offset ;
1007    Int size ;   1007    Int size ;
1008 };   1008 };
1009 struct __anonstruct_IRDirty_29 {   1009 struct __anonstruct_IRDirty_29 {
1010    IRCallee *cee ;   1010    IRCallee *cee ;
1011    IRExpr *guard ;   1011    IRExpr *guard ;
1012    IRExpr **args ;   1012    IRExpr **args ;
1013    IRTemp tmp ;   1013    IRTemp tmp ;
1014    IREffect mFx ;   1014    IREffect mFx ;
1015    IRExpr *mAddr ;   1015    IRExpr *mAddr ;
1016    Int mSize ;   1016    Int mSize ;
1017    Bool needsBBP ;   1017    Bool needsBBP ;
1018    Int nFxState ;   1018    Int nFxState ;
1019    struct __anonstruct_fxState_30 fxState[7] ;   1019    struct __anonstruct_fxState_30 fxState[7] ;
1020 };   1020 };
1021 typedef struct __anonstruct_IRDirty_29 IRDirty;   1021 typedef struct __anonstruct_IRDirty_29 IRDirty;
1022 enum __anonenum_IRMBusEvent_31 {   1022 enum __anonenum_IRMBusEvent_31 {
1023     Imbe_Fence = 98304,   1023     Imbe_Fence = 98304,
1024     Imbe_CancelReservation = 98305   1024     Imbe_CancelReservation = 98305
1025 } ;   1025 } ;
1026 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;   1026 typedef enum __anonenum_IRMBusEvent_31 IRMBusEvent;
1027 struct __anonstruct_IRCAS_32 {   1027 struct __anonstruct_IRCAS_32 {
1028    IRTemp oldHi ;   1028    IRTemp oldHi ;
1029    IRTemp oldLo ;   1029    IRTemp oldLo ;
1030    IREndness end ;   1030    IREndness end ;
1031    IRExpr *addr ;   1031    IRExpr *addr ;
1032    IRExpr *expdHi ;   1032    IRExpr *expdHi ;
1033    IRExpr *expdLo ;   1033    IRExpr *expdLo ;
1034    IRExpr *dataHi ;   1034    IRExpr *dataHi ;
1035    IRExpr *dataLo ;   1035    IRExpr *dataLo ;
1036 };   1036 };
1037 typedef struct __anonstruct_IRCAS_32 IRCAS;   1037 typedef struct __anonstruct_IRCAS_32 IRCAS;
1038 enum __anonenum_IRStmtTag_33 {   1038 enum __anonenum_IRStmtTag_33 {
1039     Ist_NoOp = 102400,   1039     Ist_NoOp = 102400,
1040     Ist_IMark = 102401,   1040     Ist_IMark = 102401,
1041     Ist_AbiHint = 102402,   1041     Ist_AbiHint = 102402,
1042     Ist_Put = 102403,   1042     Ist_Put = 102403,
1043     Ist_PutI = 102404,   1043     Ist_PutI = 102404,
1044     Ist_WrTmp = 102405,   1044     Ist_WrTmp = 102405,
1045     Ist_Store = 102406,   1045     Ist_Store = 102406,
1046     Ist_CAS = 102407,   1046     Ist_CAS = 102407,
1047     Ist_LLSC = 102408,   1047     Ist_LLSC = 102408,
1048     Ist_Dirty = 102409,   1048     Ist_Dirty = 102409,
1049     Ist_MBE = 102410,   1049     Ist_MBE = 102410,
1050     Ist_Exit = 102411   1050     Ist_Exit = 102411
1051 } ;   1051 } ;
1052 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;   1052 typedef enum __anonenum_IRStmtTag_33 IRStmtTag;
1053 struct __anonstruct_NoOp_35 {   1053 struct __anonstruct_NoOp_35 {
1054     1054  
1055 };   1055 };
1056 struct __anonstruct_IMark_36 {   1056 struct __anonstruct_IMark_36 {
1057    Addr64 addr ;   1057    Addr64 addr ;
1058    Int len ;   1058    Int len ;
1059    UChar delta ;   1059    UChar delta ;
1060 };   1060 };
1061 struct __anonstruct_AbiHint_37 {   1061 struct __anonstruct_AbiHint_37 {
1062    IRExpr *base ;   1062    IRExpr *base ;
1063    Int len ;   1063    Int len ;
1064    IRExpr *nia ;   1064    IRExpr *nia ;
1065 };   1065 };
1066 struct __anonstruct_Put_38 {   1066 struct __anonstruct_Put_38 {
1067    Int offset ;   1067    Int offset ;
1068    IRExpr *data ;   1068    IRExpr *data ;
1069 };   1069 };
1070 struct __anonstruct_PutI_39 {   1070 struct __anonstruct_PutI_39 {
1071    IRRegArray *descr ;   1071    IRRegArray *descr ;
1072    IRExpr *ix ;   1072    IRExpr *ix ;
1073    Int bias ;   1073    Int bias ;
1074    IRExpr *data ;   1074    IRExpr *data ;
1075 };   1075 };
1076 struct __anonstruct_WrTmp_40 {   1076 struct __anonstruct_WrTmp_40 {
1077    IRTemp tmp ;   1077    IRTemp tmp ;
1078    IRExpr *data ;   1078    IRExpr *data ;
1079 };   1079 };
1080 struct __anonstruct_Store_41 {   1080 struct __anonstruct_Store_41 {
1081    IREndness end ;   1081    IREndness end ;
1082    IRExpr *addr ;   1082    IRExpr *addr ;
1083    IRExpr *data ;   1083    IRExpr *data ;
1084 };   1084 };
1085 struct __anonstruct_CAS_42 {   1085 struct __anonstruct_CAS_42 {
1086    IRCAS *details ;   1086    IRCAS *details ;
1087 };   1087 };
1088 struct __anonstruct_LLSC_43 {   1088 struct __anonstruct_LLSC_43 {
1089    IREndness end ;   1089    IREndness end ;
1090    IRTemp result ;   1090    IRTemp result ;
1091    IRExpr *addr ;   1091    IRExpr *addr ;
1092    IRExpr *storedata ;   1092    IRExpr *storedata ;
1093 };   1093 };
1094 struct __anonstruct_Dirty_44 {   1094 struct __anonstruct_Dirty_44 {
1095    IRDirty *details ;   1095    IRDirty *details ;
1096 };   1096 };
1097 struct __anonstruct_MBE_45 {   1097 struct __anonstruct_MBE_45 {
1098    IRMBusEvent event ;   1098    IRMBusEvent event ;
1099 };   1099 };
1100 struct __anonstruct_Exit_46 {   1100 struct __anonstruct_Exit_46 {
1101    IRExpr *guard ;   1101    IRExpr *guard ;
1102    IRJumpKind jk ;   1102    IRJumpKind jk ;
1103    IRConst *dst ;   1103    IRConst *dst ;
1104 };   1104 };
1105 union __anonunion_Ist_34 {   1105 union __anonunion_Ist_34 {
1106    struct __anonstruct_NoOp_35 NoOp ;   1106    struct __anonstruct_NoOp_35 NoOp ;
1107    struct __anonstruct_IMark_36 IMark ;   1107    struct __anonstruct_IMark_36 IMark ;
1108    struct __anonstruct_AbiHint_37 AbiHint ;   1108    struct __anonstruct_AbiHint_37 AbiHint ;
1109    struct __anonstruct_Put_38 Put ;   1109    struct __anonstruct_Put_38 Put ;
1110    struct __anonstruct_PutI_39 PutI ;   1110    struct __anonstruct_PutI_39 PutI ;
1111    struct __anonstruct_WrTmp_40 WrTmp ;   1111    struct __anonstruct_WrTmp_40 WrTmp ;
1112    struct __anonstruct_Store_41 Store ;   1112    struct __anonstruct_Store_41 Store ;
1113    struct __anonstruct_CAS_42 CAS ;   1113    struct __anonstruct_CAS_42 CAS ;
1114    struct __anonstruct_LLSC_43 LLSC ;   1114    struct __anonstruct_LLSC_43 LLSC ;
1115    struct __anonstruct_Dirty_44 Dirty ;   1115    struct __anonstruct_Dirty_44 Dirty ;
1116    struct __anonstruct_MBE_45 MBE ;   1116    struct __anonstruct_MBE_45 MBE ;
1117    struct __anonstruct_Exit_46 Exit ;   1117    struct __anonstruct_Exit_46 Exit ;
1118 };   1118 };
1119 struct _IRStmt {   1119 struct _IRStmt {
1120    IRStmtTag tag ;   1120    IRStmtTag tag ;
1121    union __anonunion_Ist_34 Ist ;   1121    union __anonunion_Ist_34 Ist ;
1122 };   1122 };
1123 typedef struct _IRStmt IRStmt;   1123 typedef struct _IRStmt IRStmt;
1124 struct __anonstruct_IRTypeEnv_47 {   1124 struct __anonstruct_IRTypeEnv_47 {
1125    IRType *types ;   1125    IRType *types ;
1126    Int types_size ;   1126    Int types_size ;
1127    Int types_used ;   1127    Int types_used ;
1128 };   1128 };
1129 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;   1129 typedef struct __anonstruct_IRTypeEnv_47 IRTypeEnv;
1130 struct __anonstruct_IRSB_48 {   1130 struct __anonstruct_IRSB_48 {
1131    IRTypeEnv *tyenv ;   1131    IRTypeEnv *tyenv ;
1132    IRStmt **stmts ;   1132    IRStmt **stmts ;
1133    Int stmts_size ;   1133    Int stmts_size ;
1134    Int stmts_used ;   1134    Int stmts_used ;
1135    IRExpr *next ;   1135    IRExpr *next ;
1136    IRJumpKind jumpkind ;   1136    IRJumpKind jumpkind ;
1137 };   1137 };
1138 typedef struct __anonstruct_IRSB_48 IRSB;   1138 typedef struct __anonstruct_IRSB_48 IRSB;
1139 enum __anonenum_VexArch_49 {   1139 enum __anonenum_VexArch_49 {
1140     VexArch_INVALID = 0,   1140     VexArch_INVALID = 0,
1141     VexArchX86 = 1,   1141     VexArchX86 = 1,
1142     VexArchAMD64 = 2,   1142     VexArchAMD64 = 2,
1143     VexArchARM = 3,   1143     VexArchARM = 3,
1144     VexArchPPC32 = 4,   1144     VexArchPPC32 = 4,
1145     VexArchPPC64 = 5,   1145     VexArchPPC64 = 5,
1146     VexArchS390X = 6   1146     VexArchS390X = 6
1147 } ;   1147 } ;
1148 typedef enum __anonenum_VexArch_49 VexArch;   1148 typedef enum __anonenum_VexArch_49 VexArch;
1149 struct __anonstruct_VexArchInfo_50 {   1149 struct __anonstruct_VexArchInfo_50 {
1150    UInt hwcaps ;   1150    UInt hwcaps ;
1151    Int ppc_cache_line_szB ;   1151    Int ppc_cache_line_szB ;
1152    UInt ppc_dcbz_szB ;   1152    UInt ppc_dcbz_szB ;
1153    UInt ppc_dcbzl_szB ;   1153    UInt ppc_dcbzl_szB ;
1154 };   1154 };
1155 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;   1155 typedef struct __anonstruct_VexArchInfo_50 VexArchInfo;
1156 struct __anonstruct_VexAbiInfo_51 {   1156 struct __anonstruct_VexAbiInfo_51 {
1157    Int guest_stack_redzone_size ;   1157    Int guest_stack_redzone_size ;
1158    Bool guest_amd64_assume_fs_is_zero ;   1158    Bool guest_amd64_assume_fs_is_zero ;
1159    Bool guest_amd64_assume_gs_is_0x60 ;   1159    Bool guest_amd64_assume_gs_is_0x60 ;
1160    Bool guest_ppc_zap_RZ_at_blr ;   1160    Bool guest_ppc_zap_RZ_at_blr ;
1161    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;   1161    Bool (*guest_ppc_zap_RZ_at_bl)(Addr64  ) ;
1162    Bool guest_ppc_sc_continues_at_LR ;   1162    Bool guest_ppc_sc_continues_at_LR ;
1163    Bool host_ppc_calls_use_fndescrs ;   1163    Bool host_ppc_calls_use_fndescrs ;
1164    Bool host_ppc32_regalign_int64_args ;   1164    Bool host_ppc32_regalign_int64_args ;
1165 };   1165 };
1166 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;   1166 typedef struct __anonstruct_VexAbiInfo_51 VexAbiInfo;
1167 struct __anonstruct_VexControl_52 {   1167 struct __anonstruct_VexControl_52 {
1168    Int iropt_verbosity ;   1168    Int iropt_verbosity ;
1169    Int iropt_level ;   1169    Int iropt_level ;
1170    Bool iropt_precise_memory_exns ;   1170    Bool iropt_precise_memory_exns ;
1171    Int iropt_unroll_thresh ;   1171    Int iropt_unroll_thresh ;
1172    Int guest_max_insns ;   1172    Int guest_max_insns ;
1173    Int guest_chase_thresh ;   1173    Int guest_chase_thresh ;
1174    Bool guest_chase_cond ;   1174    Bool guest_chase_cond ;
1175 };   1175 };
1176 typedef struct __anonstruct_VexControl_52 VexControl;   1176 typedef struct __anonstruct_VexControl_52 VexControl;
1177 union __anonunion_x_53 {   1177 union __anonunion_x_53 {
1178    char c ;   1178    char c ;
1179    short s ;   1179    short s ;
1180    int i ;   1180    int i ;
1181    long l ;   1181    long l ;
1182    long long ll ;   1182    long long ll ;
1183    float f ;   1183    float f ;
1184    double d ;   1184    double d ;
1185    void *pto ;   1185    void *pto ;
1186    void (*ptf)(void) ;   1186    void (*ptf)(void) ;
1187 };   1187 };
1188 struct align {   1188 struct align {
1189    char c ;   1189    char c ;
1190    union __anonunion_x_53 x ;   1190    union __anonunion_x_53 x ;
1191 };   1191 };
1192 struct __anonstruct_alwaysDefd_55 {   1192 struct __anonstruct_alwaysDefd_55 {
1193    Int offset ;   1193    Int offset ;
1194    Int size ;   1194    Int size ;
1195 };   1195 };
1196 struct __anonstruct_VexGuestLayout_54 {   1196 struct __anonstruct_VexGuestLayout_54 {
1197    Int total_sizeB ;   1197    Int total_sizeB ;
1198    Int offset_SP ;   1198    Int offset_SP ;
1199    Int sizeof_SP ;   1199    Int sizeof_SP ;
1200    Int offset_FP ;   1200    Int offset_FP ;
1201    Int sizeof_FP ;   1201    Int sizeof_FP ;
1202    Int offset_IP ;   1202    Int offset_IP ;
1203    Int sizeof_IP ;   1203    Int sizeof_IP ;
1204    Int n_alwaysDefd ;   1204    Int n_alwaysDefd ;
1205    struct __anonstruct_alwaysDefd_55 alwaysDefd[24] ;   1205    struct __anonstruct_alwaysDefd_55 alwaysDefd[24] ;
1206 };   1206 };
1207 typedef struct __anonstruct_VexGuestLayout_54 VexGuestLayout;   1207 typedef struct __anonstruct_VexGuestLayout_54 VexGuestLayout;
1208 enum __anonenum_status_57 {   1208 enum __anonenum_status_57 {
1209     VexTransOK = 0,   1209     VexTransOK = 0,
1210     VexTransAccessFail = 1,   1210     VexTransAccessFail = 1,
1211     VexTransOutputFull = 2   1211     VexTransOutputFull = 2
1212 } ;   1212 } ;
1213 struct __anonstruct_VexTranslateResult_56 {   1213 struct __anonstruct_VexTranslateResult_56 {
1214    enum __anonenum_status_57 status ;   1214    enum __anonenum_status_57 status ;
1215    UInt n_sc_extents ;   1215    UInt n_sc_extents ;
1216 };   1216 };
1217 typedef struct __anonstruct_VexTranslateResult_56 VexTranslateResult;   1217 typedef struct __anonstruct_VexTranslateResult_56 VexTranslateResult;
1218 struct __anonstruct_VexGuestExtents_58 {   1218 struct __anonstruct_VexGuestExtents_58 {
1219    Addr64 base[3] ;   1219    Addr64 base[3] ;
1220    UShort len[3] ;   1220    UShort len[3] ;
1221    UShort n_used ;   1221    UShort n_used ;
1222 };   1222 };
1223 typedef struct __anonstruct_VexGuestExtents_58 VexGuestExtents;   1223 typedef struct __anonstruct_VexGuestExtents_58 VexGuestExtents;
1224 struct __anonstruct_VexTranslateArgs_59 {   1224 struct __anonstruct_VexTranslateArgs_59 {
1225    VexArch arch_guest ;   1225    VexArch arch_guest ;
1226    VexArchInfo archinfo_guest ;   1226    VexArchInfo archinfo_guest ;
1227    VexArch arch_host ;   1227    VexArch arch_host ;
1228    VexArchInfo archinfo_host ;   1228    VexArchInfo archinfo_host ;
1229    VexAbiInfo abiinfo_both ;   1229    VexAbiInfo abiinfo_both ;
1230    void *callback_opaque ;   1230    void *callback_opaque ;
1231    UChar *guest_bytes ;   1231    UChar *guest_bytes ;
1232    Addr64 guest_bytes_addr ;   1232    Addr64 guest_bytes_addr ;
1233    Bool (*chase_into_ok)(void * , Addr64  ) ;   1233    Bool (*chase_into_ok)(void * , Addr64  ) ;
1234    VexGuestExtents *guest_extents ;   1234    VexGuestExtents *guest_extents ;
1235    UChar *host_bytes ;   1235    UChar *host_bytes ;
1236    Int host_bytes_size ;   1236    Int host_bytes_size ;
1237    Int *host_bytes_used ;   1237    Int *host_bytes_used ;
1238    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1238    IRSB *(*instrument1)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1239                         IRType gWordTy , IRType hWordTy ) ;   1239                         IRType gWordTy , IRType hWordTy ) ;
1240    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,   1240    IRSB *(*instrument2)(void * , IRSB * , VexGuestLayout * , VexGuestExtents * ,
1241                         IRType gWordTy , IRType hWordTy ) ;   1241                         IRType gWordTy , IRType hWordTy ) ;
1242    IRSB *(*finaltidy)(IRSB * ) ;   1242    IRSB *(*finaltidy)(IRSB * ) ;
1243    UInt (*needs_self_check)(void * , VexGuestExtents * ) ;   1243    UInt (*needs_self_check)(void * , VexGuestExtents * ) ;
1244    Bool (*preamble_function)(void * , IRSB * ) ;   1244    Bool (*preamble_function)(void * , IRSB * ) ;
1245    Int traceflags ;   1245    Int traceflags ;
1246    void *dispatch_unassisted ;   1246    void *dispatch_unassisted ;
1247    void *dispatch_assisted ;   1247    void *dispatch_assisted ;
1248 };   1248 };
1249 typedef struct __anonstruct_VexTranslateArgs_59 VexTranslateArgs;   1249 typedef struct __anonstruct_VexTranslateArgs_59 VexTranslateArgs;
1250 enum __anonenum_VexEmWarn_60 {   1250 enum __anonenum_VexEmWarn_60 {
1251     EmWarn_NONE = 0,   1251     EmWarn_NONE = 0,
1252     EmWarn_X86_x87exns = 1,   1252     EmWarn_X86_x87exns = 1,
1253     EmWarn_X86_x87precision = 2,   1253     EmWarn_X86_x87precision = 2,
1254     EmWarn_X86_sseExns = 3,   1254     EmWarn_X86_sseExns = 3,
1255     EmWarn_X86_fz = 4,   1255     EmWarn_X86_fz = 4,
1256     EmWarn_X86_daz = 5,   1256     EmWarn_X86_daz = 5,
1257     EmWarn_X86_acFlag = 6,   1257     EmWarn_X86_acFlag = 6,
1258     EmWarn_PPCexns = 7,   1258     EmWarn_PPCexns = 7,
1259     EmWarn_PPC64_redir_overflow = 8,   1259     EmWarn_PPC64_redir_overflow = 8,
1260     EmWarn_PPC64_redir_underflow = 9,   1260     EmWarn_PPC64_redir_underflow = 9,
1261     EmWarn_NUMBER = 10   1261     EmWarn_NUMBER = 10
1262 } ;   1262 } ;
1263 typedef enum __anonenum_VexEmWarn_60 VexEmWarn;   1263 typedef enum __anonenum_VexEmWarn_60 VexEmWarn;
1264 struct __anonstruct_VexGuestX86State_61 {   1264 struct __anonstruct_VexGuestX86State_61 {
1265    UInt guest_EAX ;   1265    UInt guest_EAX ;
1266    UInt guest_ECX ;   1266    UInt guest_ECX ;
1267    UInt guest_EDX ;   1267    UInt guest_EDX ;
1268    UInt guest_EBX ;   1268    UInt guest_EBX ;
1269    UInt guest_ESP ;   1269    UInt guest_ESP ;
1270    UInt guest_EBP ;   1270    UInt guest_EBP ;
1271    UInt guest_ESI ;   1271    UInt guest_ESI ;
1272    UInt guest_EDI ;   1272    UInt guest_EDI ;
1273    UInt guest_CC_OP ;   1273    UInt guest_CC_OP ;
1274    UInt guest_CC_DEP1 ;   1274    UInt guest_CC_DEP1 ;
1275    UInt guest_CC_DEP2 ;   1275    UInt guest_CC_DEP2 ;
1276    UInt guest_CC_NDEP ;   1276    UInt guest_CC_NDEP ;
1277    UInt guest_DFLAG ;   1277    UInt guest_DFLAG ;
1278    UInt guest_IDFLAG ;   1278    UInt guest_IDFLAG ;
1279    UInt guest_ACFLAG ;   1279    UInt guest_ACFLAG ;
1280    UInt guest_EIP ;   1280    UInt guest_EIP ;
1281    ULong guest_FPREG[8] ;   1281    ULong guest_FPREG[8] ;
1282    UChar guest_FPTAG[8] ;   1282    UChar guest_FPTAG[8] ;
1283    UInt guest_FPROUND ;   1283    UInt guest_FPROUND ;
1284    UInt guest_FC3210 ;   1284    UInt guest_FC3210 ;
1285    UInt guest_FTOP ;   1285    UInt guest_FTOP ;
1286    UInt guest_SSEROUND ;   1286    UInt guest_SSEROUND ;
1287    U128 guest_XMM0 ;   1287    U128 guest_XMM0 ;
1288    U128 guest_XMM1 ;   1288    U128 guest_XMM1 ;
1289    U128 guest_XMM2 ;   1289    U128 guest_XMM2 ;
1290    U128 guest_XMM3 ;   1290    U128 guest_XMM3 ;
1291    U128 guest_XMM4 ;   1291    U128 guest_XMM4 ;
1292    U128 guest_XMM5 ;   1292    U128 guest_XMM5 ;
1293    U128 guest_XMM6 ;   1293    U128 guest_XMM6 ;
1294    U128 guest_XMM7 ;   1294    U128 guest_XMM7 ;
1295    UShort guest_CS ;   1295    UShort guest_CS ;
1296    UShort guest_DS ;   1296    UShort guest_DS ;
1297    UShort guest_ES ;   1297    UShort guest_ES ;
1298    UShort guest_FS ;   1298    UShort guest_FS ;
1299    UShort guest_GS ;   1299    UShort guest_GS ;
1300    UShort guest_SS ;   1300    UShort guest_SS ;
1301    HWord guest_LDT ;   1301    HWord guest_LDT ;
1302    HWord guest_GDT ;   1302    HWord guest_GDT ;
1303    UInt guest_EMWARN ;   1303    UInt guest_EMWARN ;
1304    UInt guest_TISTART ;   1304    UInt guest_TISTART ;
1305    UInt guest_TILEN ;   1305    UInt guest_TILEN ;
1306    UInt guest_NRADDR ;   1306    UInt guest_NRADDR ;
1307    UInt guest_SC_CLASS ;   1307    UInt guest_SC_CLASS ;
1308    UInt guest_IP_AT_SYSCALL ;   1308    UInt guest_IP_AT_SYSCALL ;
1309    UInt padding1 ;   1309    UInt padding1 ;
1310    UInt padding2 ;   1310    UInt padding2 ;
1311    UInt padding3 ;   1311    UInt padding3 ;
1312 };   1312 };
1313 typedef struct __anonstruct_VexGuestX86State_61 VexGuestX86State;   1313 typedef struct __anonstruct_VexGuestX86State_61 VexGuestX86State;
1314 struct __anonstruct_Bits_64 {   1314 struct __anonstruct_Bits_64 {
1315    UShort LimitLow ;   1315    UShort LimitLow ;
1316    UShort BaseLow ;   1316    UShort BaseLow ;
1317    UInt BaseMid : 8 ;   1317    UInt BaseMid : 8 ;
1318    UInt Type : 5 ;   1318    UInt Type : 5 ;
1319    UInt Dpl : 2 ;   1319    UInt Dpl : 2 ;
1320    UInt Pres : 1 ;   1320    UInt Pres : 1 ;
1321    UInt LimitHi : 4 ;   1321    UInt LimitHi : 4 ;
1322    UInt Sys : 1 ;   1322    UInt Sys : 1 ;
1323    UInt Reserved_0 : 1 ;   1323    UInt Reserved_0 : 1 ;
1324    UInt Default_Big : 1 ;   1324    UInt Default_Big : 1 ;
1325    UInt Granularity : 1 ;   1325    UInt Granularity : 1 ;
1326    UInt BaseHi : 8 ;   1326    UInt BaseHi : 8 ;
1327 };   1327 };
1328 struct __anonstruct_Words_65 {   1328 struct __anonstruct_Words_65 {
1329    UInt word1 ;   1329    UInt word1 ;
1330    UInt word2 ;   1330    UInt word2 ;
1331 };   1331 };
1332 union __anonunion_LdtEnt_63 {   1332 union __anonunion_LdtEnt_63 {
1333    struct __anonstruct_Bits_64 Bits ;   1333    struct __anonstruct_Bits_64 Bits ;
1334    struct __anonstruct_Words_65 Words ;   1334    struct __anonstruct_Words_65 Words ;
1335 };   1335 };
1336 struct __anonstruct_VexGuestX86SegDescr_62 {   1336 struct __anonstruct_VexGuestX86SegDescr_62 {
1337    union __anonunion_LdtEnt_63 LdtEnt ;   1337    union __anonunion_LdtEnt_63 LdtEnt ;
1338 };   1338 };
1339 typedef struct __anonstruct_VexGuestX86SegDescr_62 VexGuestX86SegDescr;   1339 typedef struct __anonstruct_VexGuestX86SegDescr_62 VexGuestX86SegDescr;
1340 struct __anonstruct_X86_68 {   1340 struct __anonstruct_X86_68 {
1341    UInt r_ebp ;   1341    UInt r_ebp ;
1342 };   1342 };
1343 struct __anonstruct_AMD64_69 {   1343 struct __anonstruct_AMD64_69 {
1344    ULong r_rbp ;   1344    ULong r_rbp ;
1345 };   1345 };
1346 struct __anonstruct_PPC32_70 {   1346 struct __anonstruct_PPC32_70 {
1347    UInt r_lr ;   1347    UInt r_lr ;
1348 };   1348 };
1349 struct __anonstruct_PPC64_71 {   1349 struct __anonstruct_PPC64_71 {
1350    ULong r_lr ;   1350    ULong r_lr ;
1351 };   1351 };
1352 struct __anonstruct_ARM_72 {   1352 struct __anonstruct_ARM_72 {
1353    UInt r14 ;   1353    UInt r14 ;
1354    UInt r12 ;   1354    UInt r12 ;
1355    UInt r11 ;   1355    UInt r11 ;
1356    UInt r7 ;   1356    UInt r7 ;
1357 };   1357 };
1358 struct __anonstruct_S390X_73 {   1358 struct __anonstruct_S390X_73 {
1359    ULong r_fp ;   1359    ULong r_fp ;
1360    ULong r_lr ;   1360    ULong r_lr ;
1361 };   1361 };
1362 union __anonunion_misc_67 {   1362 union __anonunion_misc_67 {
1363    struct __anonstruct_X86_68 X86 ;   1363    struct __anonstruct_X86_68 X86 ;
1364    struct __anonstruct_AMD64_69 AMD64 ;   1364    struct __anonstruct_AMD64_69 AMD64 ;
1365    struct __anonstruct_PPC32_70 PPC32 ;   1365    struct __anonstruct_PPC32_70 PPC32 ;
1366    struct __anonstruct_PPC64_71 PPC64 ;   1366    struct __anonstruct_PPC64_71 PPC64 ;
1367    struct __anonstruct_ARM_72 ARM ;   1367    struct __anonstruct_ARM_72 ARM ;
1368    struct __anonstruct_S390X_73 S390X ;   1368    struct __anonstruct_S390X_73 S390X ;
1369 };   1369 };
1370 struct __anonstruct_UnwindStartRegs_66 {   1370 struct __anonstruct_UnwindStartRegs_66 {
1371    ULong r_pc ;   1371    ULong r_pc ;
1372    ULong r_sp ;   1372    ULong r_sp ;
1373    union __anonunion_misc_67 misc ;   1373    union __anonunion_misc_67 misc ;
1374 };   1374 };
1375 typedef struct __anonstruct_UnwindStartRegs_66 UnwindStartRegs;   1375 typedef struct __anonstruct_UnwindStartRegs_66 UnwindStartRegs;
1376 typedef unsigned short __vki_kernel_mode_t;   1376 typedef unsigned short __vki_kernel_mode_t;
1377 typedef long __vki_kernel_off_t;   1377 typedef long __vki_kernel_off_t;
1378 typedef int __vki_kernel_pid_t;   1378 typedef int __vki_kernel_pid_t;
1379 typedef unsigned short __vki_kernel_ipc_pid_t;   1379 typedef unsigned short __vki_kernel_ipc_pid_t;
1380 typedef unsigned short __vki_kernel_uid_t;   1380 typedef unsigned short __vki_kernel_uid_t;
1381 typedef unsigned short __vki_kernel_gid_t;   1381 typedef unsigned short __vki_kernel_gid_t;
1382 typedef unsigned int __vki_kernel_size_t;   1382 typedef unsigned int __vki_kernel_size_t;
1383 typedef long __vki_kernel_time_t;   1383 typedef long __vki_kernel_time_t;
1384 typedef long __vki_kernel_suseconds_t;   1384 typedef long __vki_kernel_suseconds_t;
1385 typedef long __vki_kernel_clock_t;   1385 typedef long __vki_kernel_clock_t;
1386 typedef int __vki_kernel_timer_t;   1386 typedef int __vki_kernel_timer_t;
1387 typedef int __vki_kernel_clockid_t;   1387 typedef int __vki_kernel_clockid_t;
1388 typedef char *__vki_kernel_caddr_t;   1388 typedef char *__vki_kernel_caddr_t;
1389 typedef unsigned int __vki_kernel_uid32_t;   1389 typedef unsigned int __vki_kernel_uid32_t;
1390 typedef unsigned int __vki_kernel_gid32_t;   1390 typedef unsigned int __vki_kernel_gid32_t;
1391 typedef unsigned short __vki_kernel_old_uid_t;   1391 typedef unsigned short __vki_kernel_old_uid_t;
1392 typedef unsigned short __vki_kernel_old_gid_t;   1392 typedef unsigned short __vki_kernel_old_gid_t;
1393 typedef long long __vki_kernel_loff_t;   1393 typedef long long __vki_kernel_loff_t;
1394 struct __anonstruct___vki_kernel_fsid_t_74 {   1394 struct __anonstruct___vki_kernel_fsid_t_74 {
1395    int val[2] ;   1395    int val[2] ;
1396 };   1396 };
1397 typedef struct __anonstruct___vki_kernel_fsid_t_74 __vki_kernel_fsid_t;   1397 typedef struct __anonstruct___vki_kernel_fsid_t_74 __vki_kernel_fsid_t;
1398 struct __anonstruct___vki_kernel_fd_set_75 {   1398 struct __anonstruct___vki_kernel_fd_set_75 {
1399    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;   1399    unsigned long fds_bits[1024U / (8U * sizeof(unsigned long ))] ;
1400 };   1400 };
1401 typedef struct __anonstruct___vki_kernel_fd_set_75 __vki_kernel_fd_set;   1401 typedef struct __anonstruct___vki_kernel_fd_set_75 __vki_kernel_fd_set;
1402 typedef int __vki_kernel_key_t;   1402 typedef int __vki_kernel_key_t;
1403 typedef int __vki_kernel_mqd_t;   1403 typedef int __vki_kernel_mqd_t;
1404 typedef __vki_kernel_fd_set vki_fd_set;   1404 typedef __vki_kernel_fd_set vki_fd_set;
1405 typedef __vki_kernel_mode_t vki_mode_t;   1405 typedef __vki_kernel_mode_t vki_mode_t;
1406 typedef __vki_kernel_off_t vki_off_t;   1406 typedef __vki_kernel_off_t vki_off_t;
1407 typedef __vki_kernel_pid_t vki_pid_t;   1407 typedef __vki_kernel_pid_t vki_pid_t;
1408 typedef __vki_kernel_key_t vki_key_t;   1408 typedef __vki_kernel_key_t vki_key_t;
1409 typedef __vki_kernel_suseconds_t vki_suseconds_t;   1409 typedef __vki_kernel_suseconds_t vki_suseconds_t;
1410 typedef __vki_kernel_timer_t vki_timer_t;   1410 typedef __vki_kernel_timer_t vki_timer_t;
1411 typedef __vki_kernel_clockid_t vki_clockid_t;   1411 typedef __vki_kernel_clockid_t vki_clockid_t;
1412 typedef __vki_kernel_mqd_t vki_mqd_t;   1412 typedef __vki_kernel_mqd_t vki_mqd_t;
1413 typedef __vki_kernel_uid32_t vki_uid_t;   1413 typedef __vki_kernel_uid32_t vki_uid_t;
1414 typedef __vki_kernel_gid32_t vki_gid_t;   1414 typedef __vki_kernel_gid32_t vki_gid_t;
1415 typedef __vki_kernel_old_uid_t vki_old_uid_t;   1415 typedef __vki_kernel_old_uid_t vki_old_uid_t;
1416 typedef __vki_kernel_old_gid_t vki_old_gid_t;   1416 typedef __vki_kernel_old_gid_t vki_old_gid_t;
1417 typedef __vki_kernel_loff_t vki_loff_t;   1417 typedef __vki_kernel_loff_t vki_loff_t;
1418 typedef __vki_kernel_size_t vki_size_t;   1418 typedef __vki_kernel_size_t vki_size_t;
1419 typedef __vki_kernel_time_t vki_time_t;   1419 typedef __vki_kernel_time_t vki_time_t;
1420 typedef __vki_kernel_clock_t vki_clock_t;   1420 typedef __vki_kernel_clock_t vki_clock_t;
1421 typedef __vki_kernel_caddr_t vki_caddr_t;   1421 typedef __vki_kernel_caddr_t vki_caddr_t;
1422 typedef unsigned long vki_u_long;   1422 typedef unsigned long vki_u_long;
1423 typedef unsigned int vki_uint;   1423 typedef unsigned int vki_uint;
1424 typedef unsigned char __vki_u8;   1424 typedef unsigned char __vki_u8;
1425 typedef short __vki_s16;   1425 typedef short __vki_s16;
1426 typedef unsigned short __vki_u16;   1426 typedef unsigned short __vki_u16;
1427 typedef int __vki_s32;   1427 typedef int __vki_s32;
1428 typedef unsigned int __vki_u32;   1428 typedef unsigned int __vki_u32;
1429 typedef long long __vki_s64;   1429 typedef long long __vki_s64;
1430 typedef unsigned long long __vki_u64;   1430 typedef unsigned long long __vki_u64;
1431 typedef unsigned short vki_u16;   1431 typedef unsigned short vki_u16;
1432 typedef unsigned int vki_u32;   1432 typedef unsigned int vki_u32;
1433 typedef void __vki_signalfn_t(int  );   1433 typedef void __vki_signalfn_t(int  );
1434 typedef __vki_signalfn_t *__vki_sighandler_t;   1434 typedef __vki_signalfn_t *__vki_sighandler_t;
1435 typedef void __vki_restorefn_t(void);   1435 typedef void __vki_restorefn_t(void);
1436 typedef __vki_restorefn_t *__vki_sigrestore_t;   1436 typedef __vki_restorefn_t *__vki_sigrestore_t;
1437 typedef unsigned long vki_old_sigset_t;   1437 typedef unsigned long vki_old_sigset_t;
1438 struct __anonstruct_vki_sigset_t_76 {   1438 struct __anonstruct_vki_sigset_t_76 {
1439    unsigned long sig[2] ;   1439    unsigned long sig[2] ;
1440 };   1440 };
1441 typedef struct __anonstruct_vki_sigset_t_76 vki_sigset_t;   1441 typedef struct __anonstruct_vki_sigset_t_76 vki_sigset_t;
1442 struct vki_old_sigaction {   1442 struct vki_old_sigaction {
1443    __vki_sighandler_t ksa_handler ;   1443    __vki_sighandler_t ksa_handler ;
1444    vki_old_sigset_t sa_mask ;   1444    vki_old_sigset_t sa_mask ;
1445    unsigned long sa_flags ;   1445    unsigned long sa_flags ;
1446    __vki_sigrestore_t sa_restorer ;   1446    __vki_sigrestore_t sa_restorer ;
1447 };   1447 };
1448 struct vki_sigaction_base {   1448 struct vki_sigaction_base {
1449    __vki_sighandler_t ksa_handler ;   1449    __vki_sighandler_t ksa_handler ;
1450    unsigned long sa_flags ;   1450    unsigned long sa_flags ;
1451    __vki_sigrestore_t sa_restorer ;   1451    __vki_sigrestore_t sa_restorer ;
1452    vki_sigset_t sa_mask ;   1452    vki_sigset_t sa_mask ;
1453 };   1453 };
1454 typedef struct vki_sigaction_base vki_sigaction_toK_t;   1454 typedef struct vki_sigaction_base vki_sigaction_toK_t;
1455 typedef struct vki_sigaction_base vki_sigaction_fromK_t;   1455 typedef struct vki_sigaction_base vki_sigaction_fromK_t;
1456 struct vki_sigaltstack {   1456 struct vki_sigaltstack {
1457    void *ss_sp ;   1457    void *ss_sp ;
1458    int ss_flags ;   1458    int ss_flags ;
1459    vki_size_t ss_size ;   1459    vki_size_t ss_size ;
1460 };   1460 };
1461 typedef struct vki_sigaltstack vki_stack_t;   1461 typedef struct vki_sigaltstack vki_stack_t;
1462 struct _vki_fpreg {   1462 struct _vki_fpreg {
1463    unsigned short significand[4] ;   1463    unsigned short significand[4] ;
1464    unsigned short exponent ;   1464    unsigned short exponent ;
1465 };   1465 };
1466 struct _vki_fpxreg {   1466 struct _vki_fpxreg {
1467    unsigned short significand[4] ;   1467    unsigned short significand[4] ;
1468    unsigned short exponent ;   1468    unsigned short exponent ;
1469    unsigned short padding[3] ;   1469    unsigned short padding[3] ;
1470 };   1470 };
1471 struct _vki_xmmreg {   1471 struct _vki_xmmreg {
1472    unsigned long element[4] ;   1472    unsigned long element[4] ;
1473 };   1473 };
1474 struct _vki_fpstate {   1474 struct _vki_fpstate {
1475    unsigned long cw ;   1475    unsigned long cw ;
1476    unsigned long sw ;   1476    unsigned long sw ;
1477    unsigned long tag ;   1477    unsigned long tag ;
1478    unsigned long ipoff ;   1478    unsigned long ipoff ;
1479    unsigned long cssel ;   1479    unsigned long cssel ;
1480    unsigned long dataoff ;   1480    unsigned long dataoff ;
1481    unsigned long datasel ;   1481    unsigned long datasel ;
1482    struct _vki_fpreg _st[8] ;   1482    struct _vki_fpreg _st[8] ;
1483    unsigned short status ;   1483    unsigned short status ;
1484    unsigned short magic ;   1484    unsigned short magic ;
1485    unsigned long _fxsr_env[6] ;   1485    unsigned long _fxsr_env[6] ;
1486    unsigned long mxcsr ;   1486    unsigned long mxcsr ;
1487    unsigned long reserved ;   1487    unsigned long reserved ;
1488    struct _vki_fpxreg _fxsr_st[8] ;   1488    struct _vki_fpxreg _fxsr_st[8] ;
1489    struct _vki_xmmreg _xmm[8] ;   1489    struct _vki_xmmreg _xmm[8] ;
1490    unsigned long padding[56] ;   1490    unsigned long padding[56] ;
1491 };   1491 };
1492 struct vki_sigcontext {   1492 struct vki_sigcontext {
1493    unsigned short gs ;   1493    unsigned short gs ;
1494    unsigned short __gsh ;   1494    unsigned short __gsh ;
1495    unsigned short fs ;   1495    unsigned short fs ;
1496    unsigned short __fsh ;   1496    unsigned short __fsh ;
1497    unsigned short es ;   1497    unsigned short es ;
1498    unsigned short __esh ;   1498    unsigned short __esh ;
1499    unsigned short ds ;   1499    unsigned short ds ;
1500    unsigned short __dsh ;   1500    unsigned short __dsh ;
1501    unsigned long edi ;   1501    unsigned long edi ;
1502    unsigned long esi ;   1502    unsigned long esi ;
1503    unsigned long ebp ;   1503    unsigned long ebp ;
1504    unsigned long esp ;   1504    unsigned long esp ;
1505    unsigned long ebx ;   1505    unsigned long ebx ;
1506    unsigned long edx ;   1506    unsigned long edx ;
1507    unsigned long ecx ;   1507    unsigned long ecx ;
1508    unsigned long eax ;   1508    unsigned long eax ;
1509    unsigned long trapno ;   1509    unsigned long trapno ;
1510    unsigned long err ;   1510    unsigned long err ;
1511    unsigned long eip ;   1511    unsigned long eip ;
1512    unsigned short cs ;   1512    unsigned short cs ;
1513    unsigned short __csh ;   1513    unsigned short __csh ;
1514    unsigned long eflags ;   1514    unsigned long eflags ;
1515    unsigned long esp_at_signal ;   1515    unsigned long esp_at_signal ;
1516    unsigned short ss ;   1516    unsigned short ss ;
1517    unsigned short __ssh ;   1517    unsigned short __ssh ;
1518    struct _vki_fpstate *fpstate ;   1518    struct _vki_fpstate *fpstate ;
1519    unsigned long oldmask ;   1519    unsigned long oldmask ;
1520    unsigned long cr2 ;   1520    unsigned long cr2 ;
1521 };   1521 };
1522 struct vki_f_owner_ex {   1522 struct vki_f_owner_ex {
1523    int type ;   1523    int type ;
1524    __vki_kernel_pid_t pid ;   1524    __vki_kernel_pid_t pid ;
1525 };   1525 };
1526 struct vki_stat {   1526 struct vki_stat {
1527    unsigned long st_dev ;   1527    unsigned long st_dev ;
1528    unsigned long st_ino ;   1528    unsigned long st_ino ;
1529    unsigned short st_mode ;   1529    unsigned short st_mode ;
1530    unsigned short st_nlink ;   1530    unsigned short st_nlink ;
1531    unsigned short st_uid ;   1531    unsigned short st_uid ;
1532    unsigned short st_gid ;   1532    unsigned short st_gid ;
1533    unsigned long st_rdev ;   1533    unsigned long st_rdev ;
1534    unsigned long st_size ;   1534    unsigned long st_size ;
1535    unsigned long st_blksize ;   1535    unsigned long st_blksize ;
1536    unsigned long st_blocks ;   1536    unsigned long st_blocks ;
1537    unsigned long st_atime ;   1537    unsigned long st_atime ;
1538    unsigned long st_atime_nsec ;   1538    unsigned long st_atime_nsec ;
1539    unsigned long st_mtime ;   1539    unsigned long st_mtime ;
1540    unsigned long st_mtime_nsec ;   1540    unsigned long st_mtime_nsec ;
1541    unsigned long st_ctime ;   1541    unsigned long st_ctime ;
1542    unsigned long st_ctime_nsec ;   1542    unsigned long st_ctime_nsec ;
1543    unsigned long __unused4 ;   1543    unsigned long __unused4 ;
1544    unsigned long __unused5 ;   1544    unsigned long __unused5 ;
1545 };   1545 };
1546 struct vki_stat64 {   1546 struct vki_stat64 {
1547    unsigned long long st_dev ;   1547    unsigned long long st_dev ;
1548    unsigned char __pad0[4] ;   1548    unsigned char __pad0[4] ;
1549    unsigned long __st_ino ;   1549    unsigned long __st_ino ;
1550    unsigned int st_mode ;   1550    unsigned int st_mode ;
1551    unsigned int st_nlink ;   1551    unsigned int st_nlink ;
1552    unsigned long st_uid ;   1552    unsigned long st_uid ;
1553    unsigned long st_gid ;   1553    unsigned long st_gid ;
1554    unsigned long long st_rdev ;   1554    unsigned long long st_rdev ;
1555    unsigned char __pad3[4] ;   1555    unsigned char __pad3[4] ;
1556    long long st_size ;   1556    long long st_size ;
1557    unsigned long st_blksize ;   1557    unsigned long st_blksize ;
1558    unsigned long st_blocks ;   1558    unsigned long st_blocks ;
1559    unsigned long __pad4 ;   1559    unsigned long __pad4 ;
1560    unsigned long st_atime ;   1560    unsigned long st_atime ;
1561    unsigned long st_atime_nsec ;   1561    unsigned long st_atime_nsec ;
1562    unsigned long st_mtime ;   1562    unsigned long st_mtime ;
1563    unsigned int st_mtime_nsec ;   1563    unsigned int st_mtime_nsec ;
1564    unsigned long st_ctime ;   1564    unsigned long st_ctime ;
1565    unsigned long st_ctime_nsec ;   1565    unsigned long st_ctime_nsec ;
1566    unsigned long long st_ino ;   1566    unsigned long long st_ino ;
1567 };   1567 };
1568 struct vki_statfs {   1568 struct vki_statfs {
1569    __vki_u32 f_type ;   1569    __vki_u32 f_type ;
1570    __vki_u32 f_bsize ;   1570    __vki_u32 f_bsize ;
1571    __vki_u32 f_blocks ;   1571    __vki_u32 f_blocks ;
1572    __vki_u32 f_bfree ;   1572    __vki_u32 f_bfree ;
1573    __vki_u32 f_bavail ;   1573    __vki_u32 f_bavail ;
1574    __vki_u32 f_files ;   1574    __vki_u32 f_files ;
1575    __vki_u32 f_ffree ;   1575    __vki_u32 f_ffree ;
1576    __vki_kernel_fsid_t f_fsid ;   1576    __vki_kernel_fsid_t f_fsid ;
1577    __vki_u32 f_namelen ;   1577    __vki_u32 f_namelen ;
1578    __vki_u32 f_frsize ;   1578    __vki_u32 f_frsize ;
1579    __vki_u32 f_spare[5] ;   1579    __vki_u32 f_spare[5] ;
1580 };   1580 };
1581 struct vki_winsize {   1581 struct vki_winsize {
1582    unsigned short ws_row ;   1582    unsigned short ws_row ;
1583    unsigned short ws_col ;   1583    unsigned short ws_col ;
1584    unsigned short ws_xpixel ;   1584    unsigned short ws_xpixel ;
1585    unsigned short ws_ypixel ;   1585    unsigned short ws_ypixel ;
1586 };   1586 };
1587 struct vki_termio {   1587 struct vki_termio {
1588    unsigned short c_iflag ;   1588    unsigned short c_iflag ;
1589    unsigned short c_oflag ;   1589    unsigned short c_oflag ;
1590    unsigned short c_cflag ;   1590    unsigned short c_cflag ;
1591    unsigned short c_lflag ;   1591    unsigned short c_lflag ;
1592    unsigned char c_line ;   1592    unsigned char c_line ;
1593    unsigned char c_cc[8] ;   1593    unsigned char c_cc[8] ;
1594 };   1594 };
1595 typedef unsigned char vki_cc_t;   1595 typedef unsigned char vki_cc_t;
1596 typedef unsigned int vki_tcflag_t;   1596 typedef unsigned int vki_tcflag_t;
1597 struct vki_termios {   1597 struct vki_termios {
1598    vki_tcflag_t c_iflag ;   1598    vki_tcflag_t c_iflag ;
1599    vki_tcflag_t c_oflag ;   1599    vki_tcflag_t c_oflag ;
1600    vki_tcflag_t c_cflag ;   1600    vki_tcflag_t c_cflag ;
1601    vki_tcflag_t c_lflag ;   1601    vki_tcflag_t c_lflag ;
1602    vki_cc_t c_line ;   1602    vki_cc_t c_line ;
1603    vki_cc_t c_cc[19] ;   1603    vki_cc_t c_cc[19] ;
1604 };   1604 };
1605 struct vki_pollfd {   1605 struct vki_pollfd {
1606    int fd ;   1606    int fd ;
1607    short events ;   1607    short events ;
1608    short revents ;   1608    short revents ;
1609 };   1609 };
1610 struct vki_user_i387_struct {   1610 struct vki_user_i387_struct {
1611    long cwd ;   1611    long cwd ;
1612    long swd ;   1612    long swd ;
1613    long twd ;   1613    long twd ;
1614    long fip ;   1614    long fip ;
1615    long fcs ;   1615    long fcs ;
1616    long foo ;   1616    long foo ;
1617    long fos ;   1617    long fos ;
1618    long st_space[20] ;   1618    long st_space[20] ;
1619 };   1619 };
1620 struct vki_user_fxsr_struct {   1620 struct vki_user_fxsr_struct {
1621    unsigned short cwd ;   1621    unsigned short cwd ;
1622    unsigned short swd ;   1622    unsigned short swd ;
1623    unsigned short twd ;   1623    unsigned short twd ;
1624    unsigned short fop ;   1624    unsigned short fop ;
1625    long fip ;   1625    long fip ;
1626    long fcs ;   1626    long fcs ;
1627    long foo ;   1627    long foo ;
1628    long fos ;   1628    long fos ;
1629    long mxcsr ;   1629    long mxcsr ;
1630    long reserved ;   1630    long reserved ;
1631    long st_space[32] ;   1631    long st_space[32] ;
1632    long xmm_space[32] ;   1632    long xmm_space[32] ;
1633    long padding[56] ;   1633    long padding[56] ;
1634 };   1634 };
1635 struct vki_user_regs_struct {   1635 struct vki_user_regs_struct {
1636    long ebx ;   1636    long ebx ;
1637    long ecx ;   1637    long ecx ;
1638    long edx ;   1638    long edx ;
1639    long esi ;   1639    long esi ;
1640    long edi ;   1640    long edi ;
1641    long ebp ;   1641    long ebp ;
1642    long eax ;   1642    long eax ;
1643    unsigned short ds ;   1643    unsigned short ds ;
1644    unsigned short __ds ;   1644    unsigned short __ds ;
1645    unsigned short es ;   1645    unsigned short es ;
1646    unsigned short __es ;   1646    unsigned short __es ;
1647    unsigned short fs ;   1647    unsigned short fs ;
1648    unsigned short __fs ;   1648    unsigned short __fs ;
1649    unsigned short gs ;   1649    unsigned short gs ;
1650    unsigned short __gs ;   1650    unsigned short __gs ;
1651    long orig_eax ;   1651    long orig_eax ;
1652    long eip ;   1652    long eip ;
1653    unsigned short cs ;   1653    unsigned short cs ;
1654    unsigned short __cs ;   1654    unsigned short __cs ;
1655    long eflags ;   1655    long eflags ;
1656    long esp ;   1656    long esp ;
1657    unsigned short ss ;   1657    unsigned short ss ;
1658    unsigned short __ss ;   1658    unsigned short __ss ;
1659 };   1659 };
1660 typedef unsigned long vki_elf_greg_t;   1660 typedef unsigned long vki_elf_greg_t;
1661 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];   1661 typedef vki_elf_greg_t vki_elf_gregset_t[sizeof(struct vki_user_regs_struct ) / sizeof(vki_elf_greg_t )];
1662 typedef struct vki_user_i387_struct vki_elf_fpregset_t;   1662 typedef struct vki_user_i387_struct vki_elf_fpregset_t;
1663 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;   1663 typedef struct vki_user_fxsr_struct vki_elf_fpxregset_t;
1664 struct vki_ucontext {   1664 struct vki_ucontext {
1665    unsigned long uc_flags ;   1665    unsigned long uc_flags ;
1666    struct vki_ucontext *uc_link ;   1666    struct vki_ucontext *uc_link ;
1667    vki_stack_t uc_stack ;   1667    vki_stack_t uc_stack ;
1668    struct vki_sigcontext uc_mcontext ;   1668    struct vki_sigcontext uc_mcontext ;
1669    vki_sigset_t uc_sigmask ;   1669    vki_sigset_t uc_sigmask ;
1670 };   1670 };
1671 struct vki_user_desc {   1671 struct vki_user_desc {
1672    unsigned int entry_number ;   1672    unsigned int entry_number ;
1673    unsigned long base_addr ;   1673    unsigned long base_addr ;
1674    unsigned int limit ;   1674    unsigned int limit ;
1675    unsigned int seg_32bit : 1 ;   1675    unsigned int seg_32bit : 1 ;
1676    unsigned int contents : 2 ;   1676    unsigned int contents : 2 ;
1677    unsigned int read_exec_only : 1 ;   1677    unsigned int read_exec_only : 1 ;
1678    unsigned int limit_in_pages : 1 ;   1678    unsigned int limit_in_pages : 1 ;
1679    unsigned int seg_not_present : 1 ;   1679    unsigned int seg_not_present : 1 ;
1680    unsigned int useable : 1 ;   1680    unsigned int useable : 1 ;
1681    unsigned int reserved : 25 ;   1681    unsigned int reserved : 25 ;
1682 };   1682 };
1683 typedef struct vki_user_desc vki_modify_ldt_t;   1683 typedef struct vki_user_desc vki_modify_ldt_t;
1684 struct vki_ipc64_perm {   1684 struct vki_ipc64_perm {
1685    __vki_kernel_key_t key ;   1685    __vki_kernel_key_t key ;
1686    __vki_kernel_uid32_t uid ;   1686    __vki_kernel_uid32_t uid ;
1687    __vki_kernel_gid32_t gid ;   1687    __vki_kernel_gid32_t gid ;
1688    __vki_kernel_uid32_t cuid ;   1688    __vki_kernel_uid32_t cuid ;
1689    __vki_kernel_gid32_t cgid ;   1689    __vki_kernel_gid32_t cgid ;
1690    __vki_kernel_mode_t mode ;   1690    __vki_kernel_mode_t mode ;
1691    unsigned short __pad1 ;   1691    unsigned short __pad1 ;
1692    unsigned short seq ;   1692    unsigned short seq ;
1693    unsigned short __pad2 ;   1693    unsigned short __pad2 ;
1694    unsigned long __unused1 ;   1694    unsigned long __unused1 ;
1695    unsigned long __unused2 ;   1695    unsigned long __unused2 ;
1696 };   1696 };
1697 struct vki_semid64_ds {   1697 struct vki_semid64_ds {
1698    struct vki_ipc64_perm sem_perm ;   1698    struct vki_ipc64_perm sem_perm ;
1699    __vki_kernel_time_t sem_otime ;   1699    __vki_kernel_time_t sem_otime ;
1700    unsigned long __unused1 ;   1700    unsigned long __unused1 ;
1701    __vki_kernel_time_t sem_ctime ;   1701    __vki_kernel_time_t sem_ctime ;
1702    unsigned long __unused2 ;   1702    unsigned long __unused2 ;
1703    unsigned long sem_nsems ;   1703    unsigned long sem_nsems ;
1704    unsigned long __unused3 ;   1704    unsigned long __unused3 ;
1705    unsigned long __unused4 ;   1705    unsigned long __unused4 ;
1706 };   1706 };
1707 struct vki_msqid64_ds {   1707 struct vki_msqid64_ds {
1708    struct vki_ipc64_perm msg_perm ;   1708    struct vki_ipc64_perm msg_perm ;
1709    __vki_kernel_time_t msg_stime ;   1709    __vki_kernel_time_t msg_stime ;
1710    unsigned long __unused1 ;   1710    unsigned long __unused1 ;
1711    __vki_kernel_time_t msg_rtime ;   1711    __vki_kernel_time_t msg_rtime ;
1712    unsigned long __unused2 ;   1712    unsigned long __unused2 ;
1713    __vki_kernel_time_t msg_ctime ;   1713    __vki_kernel_time_t msg_ctime ;
1714    unsigned long __unused3 ;   1714    unsigned long __unused3 ;
1715    unsigned long msg_cbytes ;   1715    unsigned long msg_cbytes ;
1716    unsigned long msg_qnum ;   1716    unsigned long msg_qnum ;
1717    unsigned long msg_qbytes ;   1717    unsigned long msg_qbytes ;
1718    __vki_kernel_pid_t msg_lspid ;   1718    __vki_kernel_pid_t msg_lspid ;
1719    __vki_kernel_pid_t msg_lrpid ;   1719    __vki_kernel_pid_t msg_lrpid ;
1720    unsigned long __unused4 ;   1720    unsigned long __unused4 ;
1721    unsigned long __unused5 ;   1721    unsigned long __unused5 ;
1722 };   1722 };
1723 struct vki_msgbuf;   1723 struct vki_msgbuf;
1724 struct vki_ipc_kludge {   1724 struct vki_ipc_kludge {
1725    struct vki_msgbuf *msgp ;   1725    struct vki_msgbuf *msgp ;
1726    long msgtyp ;   1726    long msgtyp ;
1727 };   1727 };
1728 struct vki_shmid64_ds {   1728 struct vki_shmid64_ds {
1729    struct vki_ipc64_perm shm_perm ;   1729    struct vki_ipc64_perm shm_perm ;
1730    vki_size_t shm_segsz ;   1730    vki_size_t shm_segsz ;
1731    __vki_kernel_time_t shm_atime ;   1731    __vki_kernel_time_t shm_atime ;
1732    unsigned long __unused1 ;   1732    unsigned long __unused1 ;
1733    __vki_kernel_time_t shm_dtime ;   1733    __vki_kernel_time_t shm_dtime ;
1734    unsigned long __unused2 ;   1734    unsigned long __unused2 ;
1735    __vki_kernel_time_t shm_ctime ;   1735    __vki_kernel_time_t shm_ctime ;
1736    unsigned long __unused3 ;   1736    unsigned long __unused3 ;
1737    __vki_kernel_pid_t shm_cpid ;   1737    __vki_kernel_pid_t shm_cpid ;
1738    __vki_kernel_pid_t shm_lpid ;   1738    __vki_kernel_pid_t shm_lpid ;
1739    unsigned long shm_nattch ;   1739    unsigned long shm_nattch ;
1740    unsigned long __unused4 ;   1740    unsigned long __unused4 ;
1741    unsigned long __unused5 ;   1741    unsigned long __unused5 ;
1742 };   1742 };
1743 struct vki_shminfo64 {   1743 struct vki_shminfo64 {
1744    unsigned long shmmax ;   1744    unsigned long shmmax ;
1745    unsigned long shmmin ;   1745    unsigned long shmmin ;
1746    unsigned long shmmni ;   1746    unsigned long shmmni ;
1747    unsigned long shmseg ;   1747    unsigned long shmseg ;
1748    unsigned long shmall ;   1748    unsigned long shmall ;
1749    unsigned long __unused1 ;   1749    unsigned long __unused1 ;
1750    unsigned long __unused2 ;   1750    unsigned long __unused2 ;
1751    unsigned long __unused3 ;   1751    unsigned long __unused3 ;
1752    unsigned long __unused4 ;   1752    unsigned long __unused4 ;
1753 };   1753 };
1754 struct vki_vm86_regs {   1754 struct vki_vm86_regs {
1755    long ebx ;   1755    long ebx ;
1756    long ecx ;   1756    long ecx ;
1757    long edx ;   1757    long edx ;
1758    long esi ;   1758    long esi ;
1759    long edi ;   1759    long edi ;
1760    long ebp ;   1760    long ebp ;
1761    long eax ;   1761    long eax ;
1762    long __null_ds ;   1762    long __null_ds ;
1763    long __null_es ;   1763    long __null_es ;
1764    long __null_fs ;   1764    long __null_fs ;
1765    long __null_gs ;   1765    long __null_gs ;
1766    long orig_eax ;   1766    long orig_eax ;
1767    long eip ;   1767    long eip ;
1768    unsigned short cs ;   1768    unsigned short cs ;
1769    unsigned short __csh ;   1769    unsigned short __csh ;
1770    long eflags ;   1770    long eflags ;
1771    long esp ;   1771    long esp ;
1772    unsigned short ss ;   1772    unsigned short ss ;
1773    unsigned short __ssh ;   1773    unsigned short __ssh ;
1774    unsigned short es ;   1774    unsigned short es ;
1775    unsigned short __esh ;   1775    unsigned short __esh ;
1776    unsigned short ds ;   1776    unsigned short ds ;
1777    unsigned short __dsh ;   1777    unsigned short __dsh ;
1778    unsigned short fs ;   1778    unsigned short fs ;
1779    unsigned short __fsh ;   1779    unsigned short __fsh ;
1780    unsigned short gs ;   1780    unsigned short gs ;
1781    unsigned short __gsh ;   1781    unsigned short __gsh ;
1782 };   1782 };
1783 struct vki_revectored_struct {   1783 struct vki_revectored_struct {
1784    unsigned long __map[8] ;   1784    unsigned long __map[8] ;
1785 };   1785 };
1786 struct vki_vm86_struct {   1786 struct vki_vm86_struct {
1787    struct vki_vm86_regs regs ;   1787    struct vki_vm86_regs regs ;
1788    unsigned long flags ;   1788    unsigned long flags ;
1789    unsigned long screen_bitmap ;   1789    unsigned long screen_bitmap ;
1790    unsigned long cpu_type ;   1790    unsigned long cpu_type ;
1791    struct vki_revectored_struct int_revectored ;   1791    struct vki_revectored_struct int_revectored ;
1792    struct vki_revectored_struct int21_revectored ;   1792    struct vki_revectored_struct int21_revectored ;
1793 };   1793 };
1794 struct vki_vm86plus_info_struct {   1794 struct vki_vm86plus_info_struct {
1795    unsigned long force_return_for_pic : 1 ;   1795    unsigned long force_return_for_pic : 1 ;
1796    unsigned long vm86dbg_active : 1 ;   1796    unsigned long vm86dbg_active : 1 ;
1797    unsigned long vm86dbg_TFpendig : 1 ;   1797    unsigned long vm86dbg_TFpendig : 1 ;
1798    unsigned long unused : 28 ;   1798    unsigned long unused : 28 ;
1799    unsigned long is_vm86pus : 1 ;   1799    unsigned long is_vm86pus : 1 ;
1800    unsigned char vm86dbg_intxxtab[32] ;   1800    unsigned char vm86dbg_intxxtab[32] ;
1801 };   1801 };
1802 struct vki_vm86plus_struct {   1802 struct vki_vm86plus_struct {
1803    struct vki_vm86_regs regs ;   1803    struct vki_vm86_regs regs ;
1804    unsigned long flags ;   1804    unsigned long flags ;
1805    unsigned long screen_bitmap ;   1805    unsigned long screen_bitmap ;
1806    unsigned long cpu_type ;   1806    unsigned long cpu_type ;
1807    struct vki_revectored_struct int_revectored ;   1807    struct vki_revectored_struct int_revectored ;
1808    struct vki_revectored_struct int21_revectored ;   1808    struct vki_revectored_struct int21_revectored ;
1809    struct vki_vm86plus_info_struct vm86plus ;   1809    struct vki_vm86plus_info_struct vm86plus ;
1810 };   1810 };
1811 typedef __vki_s32 vki_int32_t;   1811 typedef __vki_s32 vki_int32_t;
1812 typedef __vki_s64 vki_int64_t;   1812 typedef __vki_s64 vki_int64_t;
1813 typedef __vki_u8 vki_uint8_t;   1813 typedef __vki_u8 vki_uint8_t;
1814 typedef __vki_u16 vki_uint16_t;   1814 typedef __vki_u16 vki_uint16_t;
1815 typedef __vki_u32 vki_uint32_t;   1815 typedef __vki_u32 vki_uint32_t;
1816 struct vki_sysinfo {   1816 struct vki_sysinfo {
1817    long uptime ;   1817    long uptime ;
1818    unsigned long loads[3] ;   1818    unsigned long loads[3] ;
1819    unsigned long totalram ;   1819    unsigned long totalram ;
1820    unsigned long freeram ;   1820    unsigned long freeram ;
1821    unsigned long sharedram ;   1821    unsigned long sharedram ;
1822    unsigned long bufferram ;   1822    unsigned long bufferram ;
1823    unsigned long totalswap ;   1823    unsigned long totalswap ;
1824    unsigned long freeswap ;   1824    unsigned long freeswap ;
1825    unsigned short procs ;   1825    unsigned short procs ;
1826    unsigned short pad ;   1826    unsigned short pad ;
1827    unsigned long totalhigh ;   1827    unsigned long totalhigh ;
1828    unsigned long freehigh ;   1828    unsigned long freehigh ;
1829    unsigned int mem_unit ;   1829    unsigned int mem_unit ;
1830    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;   1830    char _f[(20U - 2U * sizeof(long )) - sizeof(int )] ;
1831 };   1831 };
1832 struct vki_timespec {   1832 struct vki_timespec {
1833    vki_time_t tv_sec ;   1833    vki_time_t tv_sec ;
1834    long tv_nsec ;   1834    long tv_nsec ;
1835 };   1835 };
1836 struct vki_timeval {   1836 struct vki_timeval {
1837    vki_time_t tv_sec ;   1837    vki_time_t tv_sec ;
1838    vki_suseconds_t tv_usec ;   1838    vki_suseconds_t tv_usec ;
1839 };   1839 };
1840 struct vki_timezone {   1840 struct vki_timezone {
1841    int tz_minuteswest ;   1841    int tz_minuteswest ;
1842    int tz_dsttime ;   1842    int tz_dsttime ;
1843 };   1843 };
1844 struct vki_itimerspec {   1844 struct vki_itimerspec {
1845    struct vki_timespec it_interval ;   1845    struct vki_timespec it_interval ;
1846    struct vki_timespec it_value ;   1846    struct vki_timespec it_value ;
1847 };   1847 };
1848 struct vki_itimerval {   1848 struct vki_itimerval {
1849    struct vki_timeval it_interval ;   1849    struct vki_timeval it_interval ;
1850    struct vki_timeval it_value ;   1850    struct vki_timeval it_value ;
1851 };   1851 };
1852 struct vki_timex {   1852 struct vki_timex {
1853    unsigned int modes ;   1853    unsigned int modes ;
1854    long offset ;   1854    long offset ;
1855    long freq ;   1855    long freq ;
1856    long maxerror ;   1856    long maxerror ;
1857    long esterror ;   1857    long esterror ;
1858    int status ;   1858    int status ;
1859    long constant ;   1859    long constant ;
1860    long precision ;   1860    long precision ;
1861    long tolerance ;   1861    long tolerance ;
1862    struct vki_timeval time ;   1862    struct vki_timeval time ;
1863    long tick ;   1863    long tick ;
1864    long ppsfreq ;   1864    long ppsfreq ;
1865    long jitter ;   1865    long jitter ;
1866    int shift ;   1866    int shift ;
1867    long stabil ;   1867    long stabil ;
1868    long jitcnt ;   1868    long jitcnt ;
1869    long calcnt ;   1869    long calcnt ;
1870    long errcnt ;   1870    long errcnt ;
1871    long stbcnt ;   1871    long stbcnt ;
1872    int  : 32 ;   1872    int  : 32 ;
1873    int  : 32 ;   1873    int  : 32 ;
1874    int  : 32 ;   1874    int  : 32 ;
1875    int  : 32 ;   1875    int  : 32 ;
1876    int  : 32 ;   1876    int  : 32 ;
1877    int  : 32 ;   1877    int  : 32 ;
1878    int  : 32 ;   1878    int  : 32 ;
1879    int  : 32 ;   1879    int  : 32 ;
1880    int  : 32 ;   1880    int  : 32 ;
1881    int  : 32 ;   1881    int  : 32 ;
1882    int  : 32 ;   1882    int  : 32 ;
1883    int  : 32 ;   1883    int  : 32 ;
1884 };   1884 };
1885 struct vki_tms {   1885 struct vki_tms {
1886    vki_clock_t tms_utime ;   1886    vki_clock_t tms_utime ;
1887    vki_clock_t tms_stime ;   1887    vki_clock_t tms_stime ;
1888    vki_clock_t tms_cutime ;   1888    vki_clock_t tms_cutime ;
1889    vki_clock_t tms_cstime ;   1889    vki_clock_t tms_cstime ;
1890 };   1890 };
1891 struct vki_utimbuf {   1891 struct vki_utimbuf {
1892    vki_time_t actime ;   1892    vki_time_t actime ;
1893    vki_time_t modtime ;   1893    vki_time_t modtime ;
1894 };   1894 };
1895 struct vki_sched_param {   1895 struct vki_sched_param {
1896    int sched_priority ;   1896    int sched_priority ;
1897 };   1897 };
1898 union vki_sigval {   1898 union vki_sigval {
1899    int sival_int ;   1899    int sival_int ;
1900    void *sival_ptr ;   1900    void *sival_ptr ;
1901 };   1901 };
1902 typedef union vki_sigval vki_sigval_t;   1902 typedef union vki_sigval vki_sigval_t;
1903 struct __anonstruct__kill_78 {   1903 struct __anonstruct__kill_78 {
1904    vki_pid_t _pid ;   1904    vki_pid_t _pid ;
1905    vki_uid_t _uid ;   1905    vki_uid_t _uid ;
1906 };   1906 };
1907 struct __anonstruct__timer_79 {   1907 struct __anonstruct__timer_79 {
1908    vki_timer_t _tid ;   1908    vki_timer_t _tid ;
1909    int _overrun ;   1909    int _overrun ;
1910    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;   1910    char _pad[sizeof(vki_uid_t ) - sizeof(int )] ;
1911    vki_sigval_t _sigval ;   1911    vki_sigval_t _sigval ;
1912    int _sys_private ;   1912    int _sys_private ;
1913 };   1913 };
1914 struct __anonstruct__rt_80 {   1914 struct __anonstruct__rt_80 {
1915    vki_pid_t _pid ;   1915    vki_pid_t _pid ;
1916    vki_uid_t _uid ;   1916    vki_uid_t _uid ;
1917    vki_sigval_t _sigval ;   1917    vki_sigval_t _sigval ;
1918 };   1918 };
1919 struct __anonstruct__sigchld_81 {   1919 struct __anonstruct__sigchld_81 {
1920    vki_pid_t _pid ;   1920    vki_pid_t _pid ;
1921    vki_uid_t _uid ;   1921    vki_uid_t _uid ;
1922    int _status ;   1922    int _status ;
1923    vki_clock_t _utime ;   1923    vki_clock_t _utime ;
1924    vki_clock_t _stime ;   1924    vki_clock_t _stime ;
1925 };   1925 };
1926 struct __anonstruct__sigfault_82 {   1926 struct __anonstruct__sigfault_82 {
1927    void *_addr ;   1927    void *_addr ;
1928 };   1928 };
1929 struct __anonstruct__sigpoll_83 {   1929 struct __anonstruct__sigpoll_83 {
1930    long _band ;   1930    long _band ;
1931    int _fd ;   1931    int _fd ;
1932 };   1932 };
1933 union __anonunion__sifields_77 {   1933 union __anonunion__sifields_77 {
1934    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;   1934    int _pad[(128U - 3U * sizeof(int )) / sizeof(int )] ;
1935    struct __anonstruct__kill_78 _kill ;   1935    struct __anonstruct__kill_78 _kill ;
1936    struct __anonstruct__timer_79 _timer ;   1936    struct __anonstruct__timer_79 _timer ;
1937    struct __anonstruct__rt_80 _rt ;   1937    struct __anonstruct__rt_80 _rt ;
1938    struct __anonstruct__sigchld_81 _sigchld ;   1938    struct __anonstruct__sigchld_81 _sigchld ;
1939    struct __anonstruct__sigfault_82 _sigfault ;   1939    struct __anonstruct__sigfault_82 _sigfault ;
1940    struct __anonstruct__sigpoll_83 _sigpoll ;   1940    struct __anonstruct__sigpoll_83 _sigpoll ;
1941 };   1941 };
1942 struct vki_siginfo {   1942 struct vki_siginfo {
1943    int si_signo ;   1943    int si_signo ;
1944    int si_errno ;   1944    int si_errno ;
1945    int si_code ;   1945    int si_code ;
1946    union __anonunion__sifields_77 _sifields ;   1946    union __anonunion__sifields_77 _sifields ;
1947 };   1947 };
1948 typedef struct vki_siginfo vki_siginfo_t;   1948 typedef struct vki_siginfo vki_siginfo_t;
1949 struct __anonstruct__sigev_thread_85 {   1949 struct __anonstruct__sigev_thread_85 {
1950    void (*_function)(vki_sigval_t  ) ;   1950    void (*_function)(vki_sigval_t  ) ;
1951    void *_attribute ;   1951    void *_attribute ;
1952 };   1952 };
1953 union __anonunion__sigev_un_84 {   1953 union __anonunion__sigev_un_84 {
1954    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;   1954    int _pad[(64U - (sizeof(int ) * 2U + sizeof(vki_sigval_t ))) / sizeof(int )] ;
1955    int _tid ;   1955    int _tid ;
1956    struct __anonstruct__sigev_thread_85 _sigev_thread ;   1956    struct __anonstruct__sigev_thread_85 _sigev_thread ;
1957 };   1957 };
1958 struct vki_sigevent {   1958 struct vki_sigevent {
1959    vki_sigval_t sigev_value ;   1959    vki_sigval_t sigev_value ;
1960    int sigev_signo ;   1960    int sigev_signo ;
1961    int sigev_notify ;   1961    int sigev_notify ;
1962    union __anonunion__sigev_un_84 _sigev_un ;   1962    union __anonunion__sigev_un_84 _sigev_un ;
1963 };   1963 };
1964 typedef struct vki_sigevent vki_sigevent_t;   1964 typedef struct vki_sigevent vki_sigevent_t;
1965 enum vki_sock_type {   1965 enum vki_sock_type {
1966     VKI_SOCK_STREAM = 1   1966     VKI_SOCK_STREAM = 1
1967 } ;   1967 } ;
1968 struct vki_iovec {   1968 struct vki_iovec {
1969    void *iov_base ;   1969    void *iov_base ;
1970    __vki_kernel_size_t iov_len ;   1970    __vki_kernel_size_t iov_len ;
1971 };   1971 };
1972 typedef unsigned short vki_sa_family_t;   1972 typedef unsigned short vki_sa_family_t;
1973 struct vki_sockaddr {   1973 struct vki_sockaddr {
1974    vki_sa_family_t sa_family ;   1974    vki_sa_family_t sa_family ;
1975    char sa_data[14] ;   1975    char sa_data[14] ;
1976 };   1976 };
1977 struct vki_msghdr {   1977 struct vki_msghdr {
1978    void *msg_name ;   1978    void *msg_name ;
1979    int msg_namelen ;   1979    int msg_namelen ;
1980    struct vki_iovec *msg_iov ;   1980    struct vki_iovec *msg_iov ;
1981    __vki_kernel_size_t msg_iovlen ;   1981    __vki_kernel_size_t msg_iovlen ;
1982    void *msg_control ;   1982    void *msg_control ;
1983    __vki_kernel_size_t msg_controllen ;   1983    __vki_kernel_size_t msg_controllen ;
1984    unsigned int msg_flags ;   1984    unsigned int msg_flags ;
1985 };   1985 };
1986 struct vki_mmsghdr {   1986 struct vki_mmsghdr {
1987    struct vki_msghdr msg_hdr ;   1987    struct vki_msghdr msg_hdr ;
1988    unsigned int msg_len ;   1988    unsigned int msg_len ;
1989 };   1989 };
1990 struct vki_cmsghdr {   1990 struct vki_cmsghdr {
1991    __vki_kernel_size_t cmsg_len ;   1991    __vki_kernel_size_t cmsg_len ;
1992    int cmsg_level ;   1992    int cmsg_level ;
1993    int cmsg_type ;   1993    int cmsg_type ;
1994 };   1994 };
1995 struct vki_in_addr {   1995 struct vki_in_addr {
1996    __vki_u32 s_addr ;   1996    __vki_u32 s_addr ;
1997 };   1997 };
1998 struct vki_sockaddr_in {   1998 struct vki_sockaddr_in {
1999    vki_sa_family_t sin_family ;   1999    vki_sa_family_t sin_family ;
2000    unsigned short sin_port ;   2000    unsigned short sin_port ;
2001    struct vki_in_addr sin_addr ;   2001    struct vki_in_addr sin_addr ;
2002    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;   2002    unsigned char __pad[((16U - sizeof(short )) - sizeof(unsigned short )) - sizeof(struct vki_in_addr )] ;
2003 };   2003 };
2004 union __anonunion_vki_in6_u_86 {   2004 union __anonunion_vki_in6_u_86 {
2005    __vki_u8 u6_addr8[16] ;   2005    __vki_u8 u6_addr8[16] ;
2006    __vki_u16 u6_addr16[8] ;   2006    __vki_u16 u6_addr16[8] ;
2007    __vki_u32 u6_addr32[4] ;   2007    __vki_u32 u6_addr32[4] ;
2008 };   2008 };
2009 struct vki_in6_addr {   2009 struct vki_in6_addr {
2010    union __anonunion_vki_in6_u_86 vki_in6_u ;   2010    union __anonunion_vki_in6_u_86 vki_in6_u ;
2011 };   2011 };
2012 struct vki_sockaddr_in6 {   2012 struct vki_sockaddr_in6 {
2013    unsigned short sin6_family ;   2013    unsigned short sin6_family ;
2014    __vki_u16 sin6_port ;   2014    __vki_u16 sin6_port ;
2015    __vki_u32 sin6_flowinfo ;   2015    __vki_u32 sin6_flowinfo ;
2016    struct vki_in6_addr sin6_addr ;   2016    struct vki_in6_addr sin6_addr ;
2017    __vki_u32 sin6_scope_id ;   2017    __vki_u32 sin6_scope_id ;
2018 };   2018 };
2019 struct vki_sockaddr_un {   2019 struct vki_sockaddr_un {
2020    vki_sa_family_t sun_family ;   2020    vki_sa_family_t sun_family ;
2021    char sun_path[108] ;   2021    char sun_path[108] ;
2022 };   2022 };
2023 struct vki_ifmap {   2023 struct vki_ifmap {
2024    unsigned long mem_start ;   2024    unsigned long mem_start ;
2025    unsigned long mem_end ;   2025    unsigned long mem_end ;
2026    unsigned short base_addr ;   2026    unsigned short base_addr ;
2027    unsigned char irq ;   2027    unsigned char irq ;
2028    unsigned char dma ;   2028    unsigned char dma ;
2029    unsigned char port ;   2029    unsigned char port ;
2030 };   2030 };
2031 union __anonunion_ifs_ifsu_87 {   2031 union __anonunion_ifs_ifsu_87 {
2032    void *raw_hdlc ;   2032    void *raw_hdlc ;
2033    void *cisco ;   2033    void *cisco ;
2034    void *fr ;   2034    void *fr ;
2035    void *fr_pvc ;   2035    void *fr_pvc ;
2036    void *fr_pvc_info ;   2036    void *fr_pvc_info ;
2037    void *sync ;   2037    void *sync ;
2038    void *te1 ;   2038    void *te1 ;
2039 };   2039 };
2040 struct vki_if_settings {   2040 struct vki_if_settings {
2041    unsigned int type ;   2041    unsigned int type ;
2042    unsigned int size ;   2042    unsigned int size ;
2043    union __anonunion_ifs_ifsu_87 ifs_ifsu ;   2043    union __anonunion_ifs_ifsu_87 ifs_ifsu ;
2044 };   2044 };
2045 union __anonunion_ifr_ifrn_88 {   2045 union __anonunion_ifr_ifrn_88 {
2046    char ifrn_name[16] ;   2046    char ifrn_name[16] ;
2047 };   2047 };
2048 union __anonunion_ifr_ifru_89 {   2048 union __anonunion_ifr_ifru_89 {
2049    struct vki_sockaddr ifru_addr ;   2049    struct vki_sockaddr ifru_addr ;
2050    struct vki_sockaddr ifru_dstaddr ;   2050    struct vki_sockaddr ifru_dstaddr ;
2051    struct vki_sockaddr ifru_broadaddr ;   2051    struct vki_sockaddr ifru_broadaddr ;
2052    struct vki_sockaddr ifru_netmask ;   2052    struct vki_sockaddr ifru_netmask ;
2053    struct vki_sockaddr ifru_hwaddr ;   2053    struct vki_sockaddr ifru_hwaddr ;
2054    short ifru_flags ;   2054    short ifru_flags ;
2055    int ifru_ivalue ;   2055    int ifru_ivalue ;
2056    int ifru_mtu ;   2056    int ifru_mtu ;
2057    struct vki_ifmap ifru_map ;   2057    struct vki_ifmap ifru_map ;
2058    char ifru_slave[16] ;   2058    char ifru_slave[16] ;
2059    char ifru_newname[16] ;   2059    char ifru_newname[16] ;
2060    void *ifru_data ;   2060    void *ifru_data ;
2061    struct vki_if_settings ifru_settings ;   2061    struct vki_if_settings ifru_settings ;
2062 };   2062 };
2063 struct vki_ifreq {   2063 struct vki_ifreq {
2064    union __anonunion_ifr_ifrn_88 ifr_ifrn ;   2064    union __anonunion_ifr_ifrn_88 ifr_ifrn ;
2065    union __anonunion_ifr_ifru_89 ifr_ifru ;   2065    union __anonunion_ifr_ifru_89 ifr_ifru ;
2066 };   2066 };
2067 union __anonunion_ifc_ifcu_90 {   2067 union __anonunion_ifc_ifcu_90 {
2068    char *ifcu_buf ;   2068    char *ifcu_buf ;
2069    struct vki_ifreq *ifcu_req ;   2069    struct vki_ifreq *ifcu_req ;
2070 };   2070 };
2071 struct vki_ifconf {   2071 struct vki_ifconf {
2072    int ifc_len ;   2072    int ifc_len ;
2073    union __anonunion_ifc_ifcu_90 ifc_ifcu ;   2073    union __anonunion_ifc_ifcu_90 ifc_ifcu ;
2074 };   2074 };
2075 struct vki_arpreq {   2075 struct vki_arpreq {
2076    struct vki_sockaddr arp_pa ;   2076    struct vki_sockaddr arp_pa ;
2077    struct vki_sockaddr arp_ha ;   2077    struct vki_sockaddr arp_ha ;
2078    int arp_flags ;   2078    int arp_flags ;
2079    struct vki_sockaddr arp_netmask ;   2079    struct vki_sockaddr arp_netmask ;
2080    char arp_dev[16] ;   2080    char arp_dev[16] ;
2081 };   2081 };
2082 struct vki_rtentry {   2082 struct vki_rtentry {
2083    unsigned long rt_pad1 ;   2083    unsigned long rt_pad1 ;
2084    struct vki_sockaddr rt_dst ;   2084    struct vki_sockaddr rt_dst ;
2085    struct vki_sockaddr rt_gateway ;   2085    struct vki_sockaddr rt_gateway ;
2086    struct vki_sockaddr rt_genmask ;   2086    struct vki_sockaddr rt_genmask ;
2087    unsigned short rt_flags ;   2087    unsigned short rt_flags ;
2088    short rt_pad2 ;   2088    short rt_pad2 ;
2089    unsigned long rt_pad3 ;   2089    unsigned long rt_pad3 ;
2090    void *rt_pad4 ;   2090    void *rt_pad4 ;
2091    short rt_metric ;   2091    short rt_metric ;
2092    char *rt_dev ;   2092    char *rt_dev ;
2093    unsigned long rt_mtu ;   2093    unsigned long rt_mtu ;
2094    unsigned long rt_window ;   2094    unsigned long rt_window ;
2095    unsigned short rt_irtt ;   2095    unsigned short rt_irtt ;
2096 };   2096 };
2097 typedef __vki_s32 vki_sctp_assoc_t;   2097 typedef __vki_s32 vki_sctp_assoc_t;
2098 enum vki_sctp_optname {   2098 enum vki_sctp_optname {
2099     VKI_SCTP_RTOINFO = 0,   2099     VKI_SCTP_RTOINFO = 0,
2100     VKI_SCTP_ASSOCINFO = 1,   2100     VKI_SCTP_ASSOCINFO = 1,
2101     VKI_SCTP_INITMSG = 2,   2101     VKI_SCTP_INITMSG = 2,
2102     VKI_SCTP_NODELAY = 3,   2102     VKI_SCTP_NODELAY = 3,
2103     VKI_SCTP_AUTOCLOSE = 4,   2103     VKI_SCTP_AUTOCLOSE = 4,
2104     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,   2104     VKI_SCTP_SET_PEER_PRIMARY_ADDR = 5,
2105     VKI_SCTP_PRIMARY_ADDR = 6,   2105     VKI_SCTP_PRIMARY_ADDR = 6,
2106     VKI_SCTP_ADAPTION_LAYER = 7,   2106     VKI_SCTP_ADAPTION_LAYER = 7,
2107     VKI_SCTP_DISABLE_FRAGMENTS = 8,   2107     VKI_SCTP_DISABLE_FRAGMENTS = 8,
2108     VKI_SCTP_PEER_ADDR_PARAMS = 9,   2108     VKI_SCTP_PEER_ADDR_PARAMS = 9,
2109     VKI_SCTP_DEFAULT_SEND_PARAM = 10,   2109     VKI_SCTP_DEFAULT_SEND_PARAM = 10,
2110     VKI_SCTP_EVENTS = 11,   2110     VKI_SCTP_EVENTS = 11,
2111     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,   2111     VKI_SCTP_I_WANT_MAPPED_V4_ADDR = 12,
2112     VKI_SCTP_MAXSEG = 13,   2112     VKI_SCTP_MAXSEG = 13,
2113     VKI_SCTP_STATUS = 14,   2113     VKI_SCTP_STATUS = 14,
2114     VKI_SCTP_GET_PEER_ADDR_INFO = 15,   2114     VKI_SCTP_GET_PEER_ADDR_INFO = 15,
2115     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,   2115     VKI_SCTP_SOCKOPT_BINDX_ADD = 100,
2116     VKI_SCTP_SOCKOPT_BINDX_REM = 101,   2116     VKI_SCTP_SOCKOPT_BINDX_REM = 101,
2117     VKI_SCTP_SOCKOPT_PEELOFF = 102,   2117     VKI_SCTP_SOCKOPT_PEELOFF = 102,
2118     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,   2118     VKI_SCTP_GET_PEER_ADDRS_NUM = 103,
2119     VKI_SCTP_GET_PEER_ADDRS = 104,   2119     VKI_SCTP_GET_PEER_ADDRS = 104,
2120     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,   2120     VKI_SCTP_GET_LOCAL_ADDRS_NUM = 105,
2121     VKI_SCTP_GET_LOCAL_ADDRS = 106,   2121     VKI_SCTP_GET_LOCAL_ADDRS = 106,
2122     VKI_SCTP_SOCKOPT_CONNECTX = 107   2122     VKI_SCTP_SOCKOPT_CONNECTX = 107
2123 } ;   2123 } ;
2124 struct vki_sctp_getaddrs {   2124 struct vki_sctp_getaddrs {
2125    vki_sctp_assoc_t assoc_id ;   2125    vki_sctp_assoc_t assoc_id ;
2126    int addr_num ;   2126    int addr_num ;
2127    struct vki_sockaddr *addrs ;   2127    struct vki_sockaddr *addrs ;
2128 };   2128 };
2129 struct vki_rusage {   2129 struct vki_rusage {
2130    struct vki_timeval ru_utime ;   2130    struct vki_timeval ru_utime ;
2131    struct vki_timeval ru_stime ;   2131    struct vki_timeval ru_stime ;
2132    long ru_maxrss ;   2132    long ru_maxrss ;
2133    long ru_ixrss ;   2133    long ru_ixrss ;
2134    long ru_idrss ;   2134    long ru_idrss ;
2135    long ru_isrss ;   2135    long ru_isrss ;
2136    long ru_minflt ;   2136    long ru_minflt ;
2137    long ru_majflt ;   2137    long ru_majflt ;
2138    long ru_nswap ;   2138    long ru_nswap ;
2139    long ru_inblock ;   2139    long ru_inblock ;
2140    long ru_oublock ;   2140    long ru_oublock ;
2141    long ru_msgsnd ;   2141    long ru_msgsnd ;
2142    long ru_msgrcv ;   2142    long ru_msgrcv ;
2143    long ru_nsignals ;   2143    long ru_nsignals ;
2144    long ru_nvcsw ;   2144    long ru_nvcsw ;
2145    long ru_nivcsw ;   2145    long ru_nivcsw ;
2146 };   2146 };
2147 struct vki_rlimit {   2147 struct vki_rlimit {
2148    unsigned long rlim_cur ;   2148    unsigned long rlim_cur ;
2149    unsigned long rlim_max ;   2149    unsigned long rlim_max ;
2150 };   2150 };
2151 struct vki_rlimit64 {   2151 struct vki_rlimit64 {
2152    __vki_u64 rlim_cur ;   2152    __vki_u64 rlim_cur ;
2153    __vki_u64 rlim_max ;   2153    __vki_u64 rlim_max ;
2154 };   2154 };
2155 struct vki_elf_siginfo {   2155 struct vki_elf_siginfo {
2156    int si_signo ;   2156    int si_signo ;
2157    int si_code ;   2157    int si_code ;
2158    int si_errno ;   2158    int si_errno ;
2159 };   2159 };
2160 struct vki_elf_prstatus {   2160 struct vki_elf_prstatus {
2161    struct vki_elf_siginfo pr_info ;   2161    struct vki_elf_siginfo pr_info ;
2162    short pr_cursig ;   2162    short pr_cursig ;
2163    unsigned long pr_sigpend ;   2163    unsigned long pr_sigpend ;
2164    unsigned long pr_sighold ;   2164    unsigned long pr_sighold ;
2165    vki_pid_t pr_pid ;   2165    vki_pid_t pr_pid ;
2166    vki_pid_t pr_ppid ;   2166    vki_pid_t pr_ppid ;
2167    vki_pid_t pr_pgrp ;   2167    vki_pid_t pr_pgrp ;
2168    vki_pid_t pr_sid ;   2168    vki_pid_t pr_sid ;
2169    struct vki_timeval pr_utime ;   2169    struct vki_timeval pr_utime ;
2170    struct vki_timeval pr_stime ;   2170    struct vki_timeval pr_stime ;
2171    struct vki_timeval pr_cutime ;   2171    struct vki_timeval pr_cutime ;
2172    struct vki_timeval pr_cstime ;   2172    struct vki_timeval pr_cstime ;
2173    vki_elf_gregset_t pr_reg ;   2173    vki_elf_gregset_t pr_reg ;
2174    int pr_fpvalid ;   2174    int pr_fpvalid ;
2175 };   2175 };
2176 struct vki_elf_prpsinfo {   2176 struct vki_elf_prpsinfo {
2177    char pr_state ;   2177    char pr_state ;
2178    char pr_sname ;   2178    char pr_sname ;
2179    char pr_zomb ;   2179    char pr_zomb ;
2180    char pr_nice ;   2180    char pr_nice ;
2181    unsigned long pr_flag ;   2181    unsigned long pr_flag ;
2182    __vki_kernel_uid_t pr_uid ;   2182    __vki_kernel_uid_t pr_uid ;
2183    __vki_kernel_gid_t pr_gid ;   2183    __vki_kernel_gid_t pr_gid ;
2184    vki_pid_t pr_pid ;   2184    vki_pid_t pr_pid ;
2185    vki_pid_t pr_ppid ;   2185    vki_pid_t pr_ppid ;
2186    vki_pid_t pr_pgrp ;   2186    vki_pid_t pr_pgrp ;
2187    vki_pid_t pr_sid ;   2187    vki_pid_t pr_sid ;
2188    char pr_fname[16] ;   2188    char pr_fname[16] ;
2189    char pr_psargs[80] ;   2189    char pr_psargs[80] ;
2190 };   2190 };
2191 struct vki_epoll_event {   2191 struct vki_epoll_event {
2192    __vki_u32 events ;   2192    __vki_u32 events ;
2193    __vki_u64 data ;   2193    __vki_u64 data ;
2194 };   2194 };
2195 struct vki_mq_attr {   2195 struct vki_mq_attr {
2196    long mq_flags ;   2196    long mq_flags ;
2197    long mq_maxmsg ;   2197    long mq_maxmsg ;
2198    long mq_msgsize ;   2198    long mq_msgsize ;
2199    long mq_curmsgs ;   2199    long mq_curmsgs ;
2200    long __reserved[4] ;   2200    long __reserved[4] ;
2201 };   2201 };
2202 struct vki_new_utsname {   2202 struct vki_new_utsname {
2203    char sysname[65] ;   2203    char sysname[65] ;
2204    char nodename[65] ;   2204    char nodename[65] ;
2205    char release[65] ;   2205    char release[65] ;
2206    char version[65] ;   2206    char version[65] ;
2207    char machine[65] ;   2207    char machine[65] ;
2208    char domainname[65] ;   2208    char domainname[65] ;
2209 };   2209 };
2210 struct vki_mii_ioctl_data {   2210 struct vki_mii_ioctl_data {
2211    vki_u16 phy_id ;   2211    vki_u16 phy_id ;
2212    vki_u16 reg_num ;   2212    vki_u16 reg_num ;
2213    vki_u16 val_in ;   2213    vki_u16 val_in ;
2214    vki_u16 val_out ;   2214    vki_u16 val_out ;
2215 };   2215 };
2216 struct __vki_user_cap_header_struct {   2216 struct __vki_user_cap_header_struct {
2217    __vki_u32 version ;   2217    __vki_u32 version ;
2218    int pid ;   2218    int pid ;
2219 };   2219 };
2220 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;   2220 typedef struct __vki_user_cap_header_struct *vki_cap_user_header_t;
2221 struct __vki_user_cap_data_struct {   2221 struct __vki_user_cap_data_struct {
2222    __vki_u32 effective ;   2222    __vki_u32 effective ;
2223    __vki_u32 permitted ;   2223    __vki_u32 permitted ;
2224    __vki_u32 inheritable ;   2224    __vki_u32 inheritable ;
2225 };   2225 };
2226 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;   2226 typedef struct __vki_user_cap_data_struct *vki_cap_user_data_t;
2227 struct vki_ipc_perm {   2227 struct vki_ipc_perm {
2228    __vki_kernel_key_t key ;   2228    __vki_kernel_key_t key ;
2229    __vki_kernel_uid_t uid ;   2229    __vki_kernel_uid_t uid ;
2230    __vki_kernel_gid_t gid ;   2230    __vki_kernel_gid_t gid ;
2231    __vki_kernel_uid_t cuid ;   2231    __vki_kernel_uid_t cuid ;
2232    __vki_kernel_gid_t cgid ;   2232    __vki_kernel_gid_t cgid ;
2233    __vki_kernel_mode_t mode ;   2233    __vki_kernel_mode_t mode ;
2234    unsigned short seq ;   2234    unsigned short seq ;
2235 };   2235 };
2236 struct vki_semid_ds {   2236 struct vki_semid_ds {
2237    struct vki_ipc_perm sem_perm ;   2237    struct vki_ipc_perm sem_perm ;
2238    __vki_kernel_time_t sem_otime ;   2238    __vki_kernel_time_t sem_otime ;
2239    __vki_kernel_time_t sem_ctime ;   2239    __vki_kernel_time_t sem_ctime ;
2240    void *sem_base ;   2240    void *sem_base ;
2241    void *sem_pending ;   2241    void *sem_pending ;
2242    void **sem_pending_last ;   2242    void **sem_pending_last ;
2243    void *undo ;   2243    void *undo ;
2244    unsigned short sem_nsems ;   2244    unsigned short sem_nsems ;
2245 };   2245 };
2246 struct vki_sembuf {   2246 struct vki_sembuf {
2247    unsigned short sem_num ;   2247    unsigned short sem_num ;
2248    short sem_op ;   2248    short sem_op ;
2249    short sem_flg ;   2249    short sem_flg ;
2250 };   2250 };
2251 struct vki_seminfo;   2251 struct vki_seminfo;
2252 union vki_semun {   2252 union vki_semun {
2253    int val ;   2253    int val ;
2254    struct vki_semid_ds *buf ;   2254    struct vki_semid_ds *buf ;
2255    unsigned short *array ;   2255    unsigned short *array ;
2256    struct vki_seminfo *__buf ;   2256    struct vki_seminfo *__buf ;
2257    void *__pad ;   2257    void *__pad ;
2258 };   2258 };
2259 struct vki_seminfo {   2259 struct vki_seminfo {
2260    int semmap ;   2260    int semmap ;
2261    int semmni ;   2261    int semmni ;
2262    int semmns ;   2262    int semmns ;
2263    int semmnu ;   2263    int semmnu ;
2264    int semmsl ;   2264    int semmsl ;
2265    int semopm ;   2265    int semopm ;
2266    int semume ;   2266    int semume ;
2267    int semusz ;   2267    int semusz ;
2268    int semvmx ;   2268    int semvmx ;
2269    int semaem ;   2269    int semaem ;
2270 };   2270 };
2271 struct vki_robust_list {   2271 struct vki_robust_list {
2272    struct vki_robust_list *next ;   2272    struct vki_robust_list *next ;
2273 };   2273 };
2274 struct vki_robust_list_head {   2274 struct vki_robust_list_head {
2275    struct vki_robust_list list ;   2275    struct vki_robust_list list ;
2276    long futex_offset ;   2276    long futex_offset ;
2277    struct vki_robust_list *list_op_pending ;   2277    struct vki_robust_list *list_op_pending ;
2278 };   2278 };
2279 struct vki_dirent {   2279 struct vki_dirent {
2280    long d_ino ;   2280    long d_ino ;
2281    __vki_kernel_off_t d_off ;   2281    __vki_kernel_off_t d_off ;
2282    unsigned short d_reclen ;   2282    unsigned short d_reclen ;
2283    char d_name[256] ;   2283    char d_name[256] ;
2284 };   2284 };
2285 struct __vki_sysctl_args {   2285 struct __vki_sysctl_args {
2286    int *name ;   2286    int *name ;
2287    int nlen ;   2287    int nlen ;
2288    void *oldval ;   2288    void *oldval ;
2289    vki_size_t *oldlenp ;   2289    vki_size_t *oldlenp ;
2290    void *newval ;   2290    void *newval ;
2291    vki_size_t newlen ;   2291    vki_size_t newlen ;
2292    unsigned long __unused[4] ;   2292    unsigned long __unused[4] ;
2293 };   2293 };
2294 typedef unsigned long vki_aio_context_t;   2294 typedef unsigned long vki_aio_context_t;
2295 enum __anonenum_91 {   2295 enum __anonenum_91 {
2296     VKI_IOCB_CMD_PREAD = 0,   2296     VKI_IOCB_CMD_PREAD = 0,
2297     VKI_IOCB_CMD_PWRITE = 1,   2297     VKI_IOCB_CMD_PWRITE = 1,
2298     VKI_IOCB_CMD_FSYNC = 2,   2298     VKI_IOCB_CMD_FSYNC = 2,
2299     VKI_IOCB_CMD_FDSYNC = 3,   2299     VKI_IOCB_CMD_FDSYNC = 3,
2300     VKI_IOCB_CMD_PREADV = 7,   2300     VKI_IOCB_CMD_PREADV = 7,
2301     VKI_IOCB_CMD_PWRITEV = 8   2301     VKI_IOCB_CMD_PWRITEV = 8
2302 } ;   2302 } ;
2303 struct vki_io_event {   2303 struct vki_io_event {
2304    __vki_u64 data ;   2304    __vki_u64 data ;
2305    __vki_u64 obj ;   2305    __vki_u64 obj ;
2306    __vki_s64 result ;   2306    __vki_s64 result ;
2307    __vki_s64 result2 ;   2307    __vki_s64 result2 ;
2308 };   2308 };
2309 struct vki_iocb {   2309 struct vki_iocb {
2310    __vki_u64 aio_data ;   2310    __vki_u64 aio_data ;
2311    __vki_u32 aio_key ;   2311    __vki_u32 aio_key ;
2312    __vki_u32 aio_reserved1 ;   2312    __vki_u32 aio_reserved1 ;
2313    __vki_u16 aio_lio_opcode ;   2313    __vki_u16 aio_lio_opcode ;
2314    __vki_s16 aio_reqprio ;   2314    __vki_s16 aio_reqprio ;
2315    __vki_u32 aio_fildes ;   2315    __vki_u32 aio_fildes ;
2316    __vki_u64 aio_buf ;   2316    __vki_u64 aio_buf ;
2317    __vki_u64 aio_nbytes ;   2317    __vki_u64 aio_nbytes ;
2318    __vki_s64 aio_offset ;   2318    __vki_s64 aio_offset ;
2319    __vki_u64 aio_reserved2 ;   2319    __vki_u64 aio_reserved2 ;
2320    __vki_u64 aio_reserved3 ;   2320    __vki_u64 aio_reserved3 ;
2321 };   2321 };
2322 struct vki_aio_ring {   2322 struct vki_aio_ring {
2323    unsigned int id ;   2323    unsigned int id ;
2324    unsigned int nr ;   2324    unsigned int nr ;
2325    unsigned int head ;   2325    unsigned int head ;
2326    unsigned int tail ;   2326    unsigned int tail ;
2327    unsigned int magic ;   2327    unsigned int magic ;
2328    unsigned int compat_features ;   2328    unsigned int compat_features ;
2329    unsigned int incompat_features ;   2329    unsigned int incompat_features ;
2330    unsigned int header_length ;   2330    unsigned int header_length ;
2331    struct vki_io_event io_events[0] ;   2331    struct vki_io_event io_events[0] ;
2332 };   2332 };
2333 struct vki_msg;   2333 struct vki_msg;
2334 struct vki_msqid_ds {   2334 struct vki_msqid_ds {
2335    struct vki_ipc_perm msg_perm ;   2335    struct vki_ipc_perm msg_perm ;
2336    struct vki_msg *msg_first ;   2336    struct vki_msg *msg_first ;
2337    struct vki_msg *msg_last ;   2337    struct vki_msg *msg_last ;
2338    __vki_kernel_time_t msg_stime ;   2338    __vki_kernel_time_t msg_stime ;
2339    __vki_kernel_time_t msg_rtime ;   2339    __vki_kernel_time_t msg_rtime ;
2340    __vki_kernel_time_t msg_ctime ;   2340    __vki_kernel_time_t msg_ctime ;
2341    unsigned long msg_lcbytes ;   2341    unsigned long msg_lcbytes ;
2342    unsigned long msg_lqbytes ;   2342    unsigned long msg_lqbytes ;
2343    unsigned short msg_cbytes ;   2343    unsigned short msg_cbytes ;
2344    unsigned short msg_qnum ;   2344    unsigned short msg_qnum ;
2345    unsigned short msg_qbytes ;   2345    unsigned short msg_qbytes ;
2346    __vki_kernel_ipc_pid_t msg_lspid ;   2346    __vki_kernel_ipc_pid_t msg_lspid ;
2347    __vki_kernel_ipc_pid_t msg_lrpid ;   2347    __vki_kernel_ipc_pid_t msg_lrpid ;
2348 };   2348 };
2349 struct vki_msgbuf {   2349 struct vki_msgbuf {
2350    long mtype ;   2350    long mtype ;
2351    char mtext[1] ;   2351    char mtext[1] ;
2352 };   2352 };
2353 struct vki_msginfo {   2353 struct vki_msginfo {
2354    int msgpool ;   2354    int msgpool ;
2355    int msgmap ;   2355    int msgmap ;
2356    int msgmax ;   2356    int msgmax ;
2357    int msgmnb ;   2357    int msgmnb ;
2358    int msgmni ;   2358    int msgmni ;
2359    int msgssz ;   2359    int msgssz ;
2360    int msgtql ;   2360    int msgtql ;
2361    unsigned short msgseg ;   2361    unsigned short msgseg ;
2362 };   2362 };
2363 struct vki_shmid_ds {   2363 struct vki_shmid_ds {
2364    struct vki_ipc_perm shm_perm ;   2364    struct vki_ipc_perm shm_perm ;
2365    int shm_segsz ;   2365    int shm_segsz ;
2366    __vki_kernel_time_t shm_atime ;   2366    __vki_kernel_time_t shm_atime ;
2367    __vki_kernel_time_t shm_dtime ;   2367    __vki_kernel_time_t shm_dtime ;
2368    __vki_kernel_time_t shm_ctime ;   2368    __vki_kernel_time_t shm_ctime ;
2369    __vki_kernel_ipc_pid_t shm_cpid ;   2369    __vki_kernel_ipc_pid_t shm_cpid ;
2370    __vki_kernel_ipc_pid_t shm_lpid ;   2370    __vki_kernel_ipc_pid_t shm_lpid ;
2371    unsigned short shm_nattch ;   2371    unsigned short shm_nattch ;
2372    unsigned short shm_unused ;   2372    unsigned short shm_unused ;
2373    void *shm_unused2 ;   2373    void *shm_unused2 ;
2374    void *shm_unused3 ;   2374    void *shm_unused3 ;
2375 };   2375 };
2376 struct vki_shminfo {   2376 struct vki_shminfo {
2377    int shmmax ;   2377    int shmmax ;
2378    int shmmin ;   2378    int shmmin ;
2379    int shmmni ;   2379    int shmmni ;
2380    int shmseg ;   2380    int shmseg ;
2381    int shmall ;   2381    int shmall ;
2382 };   2382 };
2383 struct vki_shm_info {   2383 struct vki_shm_info {
2384    int used_ids ;   2384    int used_ids ;
2385    unsigned long shm_tot ;   2385    unsigned long shm_tot ;
2386    unsigned long shm_rss ;   2386    unsigned long shm_rss ;
2387    unsigned long shm_swp ;   2387    unsigned long shm_swp ;
2388    unsigned long swap_attempts ;   2388    unsigned long swap_attempts ;
2389    unsigned long swap_successes ;   2389    unsigned long swap_successes ;
2390 };   2390 };
2391 struct vki_rtc_time {   2391 struct vki_rtc_time {
2392    int tm_sec ;   2392    int tm_sec ;
2393    int tm_min ;   2393    int tm_min ;
2394    int tm_hour ;   2394    int tm_hour ;
2395    int tm_mday ;   2395    int tm_mday ;
2396    int tm_mon ;   2396    int tm_mon ;
2397    int tm_year ;   2397    int tm_year ;
2398    int tm_wday ;   2398    int tm_wday ;
2399    int tm_yday ;   2399    int tm_yday ;
2400    int tm_isdst ;   2400    int tm_isdst ;
2401 };   2401 };
2402 struct __anonstruct_vki_isdn_net_ioctl_phone_92 {   2402 struct __anonstruct_vki_isdn_net_ioctl_phone_92 {
2403    char name[10] ;   2403    char name[10] ;
2404    char phone[32] ;   2404    char phone[32] ;
2405    int outgoing ;   2405    int outgoing ;
2406 };   2406 };
2407 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_92 vki_isdn_net_ioctl_phone;   2407 typedef struct __anonstruct_vki_isdn_net_ioctl_phone_92 vki_isdn_net_ioctl_phone;
2408 struct vki_ppdev_frob_struct {   2408 struct vki_ppdev_frob_struct {
2409    unsigned char mask ;   2409    unsigned char mask ;
2410    unsigned char val ;   2410    unsigned char val ;
2411 };   2411 };
2412 struct vki_sg_io_hdr {   2412 struct vki_sg_io_hdr {
2413    int interface_id ;   2413    int interface_id ;
2414    int dxfer_direction ;   2414    int dxfer_direction ;
2415    unsigned char cmd_len ;   2415    unsigned char cmd_len ;
2416    unsigned char mx_sb_len ;   2416    unsigned char mx_sb_len ;
2417    unsigned short iovec_count ;   2417    unsigned short iovec_count ;
2418    unsigned int dxfer_len ;   2418    unsigned int dxfer_len ;
2419    void *dxferp ;   2419    void *dxferp ;
2420    unsigned char *cmdp ;   2420    unsigned char *cmdp ;
2421    void *sbp ;   2421    void *sbp ;
2422    unsigned int timeout ;   2422    unsigned int timeout ;
2423    unsigned int flags ;   2423    unsigned int flags ;
2424    int pack_id ;   2424    int pack_id ;
2425    void *usr_ptr ;   2425    void *usr_ptr ;
2426    unsigned char status ;   2426    unsigned char status ;
2427    unsigned char masked_status ;   2427    unsigned char masked_status ;
2428    unsigned char msg_status ;   2428    unsigned char msg_status ;
2429    unsigned char sb_len_wr ;   2429    unsigned char sb_len_wr ;
2430    unsigned short host_status ;   2430    unsigned short host_status ;
2431    unsigned short driver_status ;   2431    unsigned short driver_status ;
2432    int resid ;   2432    int resid ;
2433    unsigned int duration ;   2433    unsigned int duration ;
2434    unsigned int info ;   2434    unsigned int info ;
2435 };   2435 };
2436 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;   2436 typedef struct vki_sg_io_hdr vki_sg_io_hdr_t;
2437 struct vki_sg_scsi_id {   2437 struct vki_sg_scsi_id {
2438    int host_no ;   2438    int host_no ;
2439    int channel ;   2439    int channel ;
2440    int scsi_id ;   2440    int scsi_id ;
2441    int lun ;   2441    int lun ;
2442    int scsi_type ;   2442    int scsi_type ;
2443    short h_cmd_per_lun ;   2443    short h_cmd_per_lun ;
2444    short d_queue_depth ;   2444    short d_queue_depth ;
2445    int unused[2] ;   2445    int unused[2] ;
2446 };   2446 };
2447 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;   2447 typedef struct vki_sg_scsi_id vki_sg_scsi_id_t;
2448 struct vki_scsi_idlun {   2448 struct vki_scsi_idlun {
2449    __vki_u32 dev_id ;   2449    __vki_u32 dev_id ;
2450    __vki_u32 host_unique_id ;   2450    __vki_u32 host_unique_id ;
2451 };   2451 };
2452 struct vki_cdrom_msf0 {   2452 struct vki_cdrom_msf0 {
2453    __vki_u8 minute ;   2453    __vki_u8 minute ;
2454    __vki_u8 second ;   2454    __vki_u8 second ;
2455    __vki_u8 frame ;   2455    __vki_u8 frame ;
2456 };   2456 };
2457 union vki_cdrom_addr {   2457 union vki_cdrom_addr {
2458    struct vki_cdrom_msf0 msf ;   2458    struct vki_cdrom_msf0 msf ;
2459    int lba ;   2459    int lba ;
2460 };   2460 };
2461 struct vki_cdrom_msf {   2461 struct vki_cdrom_msf {
2462    __vki_u8 cdmsf_min0 ;   2462    __vki_u8 cdmsf_min0 ;
2463    __vki_u8 cdmsf_sec0 ;   2463    __vki_u8 cdmsf_sec0 ;
2464    __vki_u8 cdmsf_frame0 ;   2464    __vki_u8 cdmsf_frame0 ;
2465    __vki_u8 cdmsf_min1 ;   2465    __vki_u8 cdmsf_min1 ;
2466    __vki_u8 cdmsf_sec1 ;   2466    __vki_u8 cdmsf_sec1 ;
2467    __vki_u8 cdmsf_frame1 ;   2467    __vki_u8 cdmsf_frame1 ;
2468 };   2468 };
2469 struct vki_cdrom_tochdr {   2469 struct vki_cdrom_tochdr {
2470    __vki_u8 cdth_trk0 ;   2470    __vki_u8 cdth_trk0 ;
2471    __vki_u8 cdth_trk1 ;   2471    __vki_u8 cdth_trk1 ;
2472 };   2472 };
2473 struct vki_cdrom_volctrl {   2473 struct vki_cdrom_volctrl {
2474    __vki_u8 channel0 ;   2474    __vki_u8 channel0 ;
2475    __vki_u8 channel1 ;   2475    __vki_u8 channel1 ;
2476    __vki_u8 channel2 ;   2476    __vki_u8 channel2 ;
2477    __vki_u8 channel3 ;   2477    __vki_u8 channel3 ;
2478 };   2478 };
2479 struct vki_cdrom_subchnl {   2479 struct vki_cdrom_subchnl {
2480    __vki_u8 cdsc_format ;   2480    __vki_u8 cdsc_format ;
2481    __vki_u8 cdsc_audiostatus ;   2481    __vki_u8 cdsc_audiostatus ;
2482    __vki_u8 cdsc_adr : 4 ;   2482    __vki_u8 cdsc_adr : 4 ;
2483    __vki_u8 cdsc_ctrl : 4 ;   2483    __vki_u8 cdsc_ctrl : 4 ;
2484    __vki_u8 cdsc_trk ;   2484    __vki_u8 cdsc_trk ;
2485    __vki_u8 cdsc_ind ;   2485    __vki_u8 cdsc_ind ;
2486    union vki_cdrom_addr cdsc_absaddr ;   2486    union vki_cdrom_addr cdsc_absaddr ;
2487    union vki_cdrom_addr cdsc_reladdr ;   2487    union vki_cdrom_addr cdsc_reladdr ;
2488 };   2488 };
2489 struct vki_cdrom_tocentry {   2489 struct vki_cdrom_tocentry {
2490    __vki_u8 cdte_track ;   2490    __vki_u8 cdte_track ;
2491    __vki_u8 cdte_adr : 4 ;   2491    __vki_u8 cdte_adr : 4 ;
2492    __vki_u8 cdte_ctrl : 4 ;   2492    __vki_u8 cdte_ctrl : 4 ;
2493    __vki_u8 cdte_format ;   2493    __vki_u8 cdte_format ;
2494    union vki_cdrom_addr cdte_addr ;   2494    union vki_cdrom_addr cdte_addr ;
2495    __vki_u8 cdte_datamode ;   2495    __vki_u8 cdte_datamode ;
2496 };   2496 };
2497 struct vki_cdrom_read {   2497 struct vki_cdrom_read {
2498    int cdread_lba ;   2498    int cdread_lba ;
2499    char *cdread_bufaddr ;   2499    char *cdread_bufaddr ;
2500    int cdread_buflen ;   2500    int cdread_buflen ;
2501 };   2501 };
2502 struct vki_cdrom_read_audio {   2502 struct vki_cdrom_read_audio {
2503    union vki_cdrom_addr addr ;   2503    union vki_cdrom_addr addr ;
2504    __vki_u8 addr_format ;   2504    __vki_u8 addr_format ;
2505    int nframes ;   2505    int nframes ;
2506    __vki_u8 *buf ;   2506    __vki_u8 *buf ;
2507 };   2507 };
2508 struct vki_cdrom_multisession {   2508 struct vki_cdrom_multisession {
2509    union vki_cdrom_addr addr ;   2509    union vki_cdrom_addr addr ;
2510    __vki_u8 xa_flag ;   2510    __vki_u8 xa_flag ;
2511    __vki_u8 addr_format ;   2511    __vki_u8 addr_format ;
2512 };   2512 };
2513 struct vki_cdrom_mcn {   2513 struct vki_cdrom_mcn {
2514    __vki_u8 medium_catalog_number[14] ;   2514    __vki_u8 medium_catalog_number[14] ;
2515 };   2515 };
2516 struct vki_cdrom_generic_command {   2516 struct vki_cdrom_generic_command {
2517    unsigned char cmd[12] ;   2517    unsigned char cmd[12] ;
2518    unsigned char *buffer ;   2518    unsigned char *buffer ;
2519    unsigned int buflen ;   2519    unsigned int buflen ;
2520    int stat ;   2520    int stat ;
2521    void *sense ;   2521    void *sense ;
2522    unsigned char data_direction ;   2522    unsigned char data_direction ;
2523    int quiet ;   2523    int quiet ;
2524    int timeout ;   2524    int timeout ;
2525    void *reserved[1] ;   2525    void *reserved[1] ;
2526 };   2526 };
2527 struct vki_audio_buf_info {   2527 struct vki_audio_buf_info {
2528    int fragments ;   2528    int fragments ;
2529    int fragstotal ;   2529    int fragstotal ;
2530    int fragsize ;   2530    int fragsize ;
2531    int bytes ;   2531    int bytes ;
2532 };   2532 };
2533 typedef struct vki_audio_buf_info vki_audio_buf_info;   2533 typedef struct vki_audio_buf_info vki_audio_buf_info;
2534 struct vki_hd_geometry {   2534 struct vki_hd_geometry {
2535    unsigned char heads ;   2535    unsigned char heads ;
2536    unsigned char sectors ;   2536    unsigned char sectors ;
2537    unsigned short cylinders ;   2537    unsigned short cylinders ;
2538    unsigned long start ;   2538    unsigned long start ;
2539 };   2539 };
2540 struct vki_fb_fix_screeninfo {   2540 struct vki_fb_fix_screeninfo {
2541    char id[16] ;   2541    char id[16] ;
2542    unsigned long smem_start ;   2542    unsigned long smem_start ;
2543    __vki_u32 smem_len ;   2543    __vki_u32 smem_len ;
2544    __vki_u32 type ;   2544    __vki_u32 type ;
2545    __vki_u32 type_aux ;   2545    __vki_u32 type_aux ;
2546    __vki_u32 visual ;   2546    __vki_u32 visual ;
2547    __vki_u16 xpanstep ;   2547    __vki_u16 xpanstep ;
2548    __vki_u16 ypanstep ;   2548    __vki_u16 ypanstep ;
2549    __vki_u16 ywrapstep ;   2549    __vki_u16 ywrapstep ;
2550    __vki_u32 line_length ;   2550    __vki_u32 line_length ;
2551    unsigned long mmio_start ;   2551    unsigned long mmio_start ;
2552    __vki_u32 mmio_len ;   2552    __vki_u32 mmio_len ;
2553    __vki_u32 accel ;   2553    __vki_u32 accel ;
2554    __vki_u16 reserved[3] ;   2554    __vki_u16 reserved[3] ;
2555 };   2555 };
2556 struct vki_fb_bitfield {   2556 struct vki_fb_bitfield {
2557    __vki_u32 offset ;   2557    __vki_u32 offset ;
2558    __vki_u32 length ;   2558    __vki_u32 length ;
2559    __vki_u32 msb_right ;   2559    __vki_u32 msb_right ;
2560 };   2560 };
2561 struct vki_fb_var_screeninfo {   2561 struct vki_fb_var_screeninfo {
2562    __vki_u32 xres ;   2562    __vki_u32 xres ;
2563    __vki_u32 yres ;   2563    __vki_u32 yres ;
2564    __vki_u32 xres_virtual ;   2564    __vki_u32 xres_virtual ;
2565    __vki_u32 yres_virtual ;   2565    __vki_u32 yres_virtual ;
2566    __vki_u32 xoffset ;   2566    __vki_u32 xoffset ;
2567    __vki_u32 yoffset ;   2567    __vki_u32 yoffset ;
2568    __vki_u32 bits_per_pixel ;   2568    __vki_u32 bits_per_pixel ;
2569    __vki_u32 grayscale ;   2569    __vki_u32 grayscale ;
2570    struct vki_fb_bitfield red ;   2570    struct vki_fb_bitfield red ;
2571    struct vki_fb_bitfield green ;   2571    struct vki_fb_bitfield green ;
2572    struct vki_fb_bitfield blue ;   2572    struct vki_fb_bitfield blue ;
2573    struct vki_fb_bitfield transp ;   2573    struct vki_fb_bitfield transp ;
2574    __vki_u32 nonstd ;   2574    __vki_u32 nonstd ;
2575    __vki_u32 activate ;   2575    __vki_u32 activate ;
2576    __vki_u32 height ;   2576    __vki_u32 height ;
2577    __vki_u32 width ;   2577    __vki_u32 width ;
2578    __vki_u32 accel_flags ;   2578    __vki_u32 accel_flags ;
2579    __vki_u32 pixclock ;   2579    __vki_u32 pixclock ;
2580    __vki_u32 left_margin ;   2580    __vki_u32 left_margin ;
2581    __vki_u32 right_margin ;   2581    __vki_u32 right_margin ;
2582    __vki_u32 upper_margin ;   2582    __vki_u32 upper_margin ;
2583    __vki_u32 lower_margin ;   2583    __vki_u32 lower_margin ;
2584    __vki_u32 hsync_len ;   2584    __vki_u32 hsync_len ;
2585    __vki_u32 vsync_len ;   2585    __vki_u32 vsync_len ;
2586    __vki_u32 sync ;   2586    __vki_u32 sync ;
2587    __vki_u32 vmode ;   2587    __vki_u32 vmode ;
2588    __vki_u32 rotate ;   2588    __vki_u32 rotate ;
2589    __vki_u32 reserved[5] ;   2589    __vki_u32 reserved[5] ;
2590 };   2590 };
2591 struct vki_consolefontdesc {   2591 struct vki_consolefontdesc {
2592    unsigned short charcount ;   2592    unsigned short charcount ;
2593    unsigned short charheight ;   2593    unsigned short charheight ;
2594    char *chardata ;   2594    char *chardata ;
2595 };   2595 };
2596 struct vki_unipair {   2596 struct vki_unipair {
2597    unsigned short unicode ;   2597    unsigned short unicode ;
2598    unsigned short fontpos ;   2598    unsigned short fontpos ;
2599 };   2599 };
2600 struct vki_unimapdesc {   2600 struct vki_unimapdesc {
2601    unsigned short entry_ct ;   2601    unsigned short entry_ct ;
2602    struct vki_unipair *entries ;   2602    struct vki_unipair *entries ;
2603 };   2603 };
2604 struct vki_unimapinit {   2604 struct vki_unimapinit {
2605    unsigned short advised_hashsize ;   2605    unsigned short advised_hashsize ;
2606    unsigned short advised_hashstep ;   2606    unsigned short advised_hashstep ;
2607    unsigned short advised_hashlevel ;   2607    unsigned short advised_hashlevel ;
2608 };   2608 };
2609 struct vki_kbentry {   2609 struct vki_kbentry {
2610    unsigned char kb_table ;   2610    unsigned char kb_table ;
2611    unsigned char kb_index ;   2611    unsigned char kb_index ;
2612    unsigned short kb_value ;   2612    unsigned short kb_value ;
2613 };   2613 };
2614 struct vki_kbsentry {   2614 struct vki_kbsentry {
2615    unsigned char kb_func ;   2615    unsigned char kb_func ;
2616    unsigned char kb_string[512] ;   2616    unsigned char kb_string[512] ;
2617 };   2617 };
2618 struct vki_kbdiacr {   2618 struct vki_kbdiacr {
2619    unsigned char diacr ;   2619    unsigned char diacr ;
2620    unsigned char base ;   2620    unsigned char base ;
2621    unsigned char result ;   2621    unsigned char result ;
2622 };   2622 };
2623 struct vki_kbdiacrs {   2623 struct vki_kbdiacrs {
2624    unsigned int kb_cnt ;   2624    unsigned int kb_cnt ;
2625    struct vki_kbdiacr kbdiacr[256] ;   2625    struct vki_kbdiacr kbdiacr[256] ;
2626 };   2626 };
2627 struct vki_kbkeycode {   2627 struct vki_kbkeycode {
2628    unsigned int scancode ;   2628    unsigned int scancode ;
2629    unsigned int keycode ;   2629    unsigned int keycode ;
2630 };   2630 };
2631 struct vki_kbd_repeat {   2631 struct vki_kbd_repeat {
2632    int delay ;   2632    int delay ;
2633    int period ;   2633    int period ;
2634 };   2634 };
2635 struct vki_console_font_op {   2635 struct vki_console_font_op {
2636    unsigned int op ;   2636    unsigned int op ;
2637    unsigned int flags ;   2637    unsigned int flags ;
2638    unsigned int width ;   2638    unsigned int width ;
2639    unsigned int height ;   2639    unsigned int height ;
2640    unsigned int charcount ;   2640    unsigned int charcount ;
2641    unsigned char *data ;   2641    unsigned char *data ;
2642 };   2642 };
2643 typedef __vki_kernel_uid32_t vki_qid_t;   2643 typedef __vki_kernel_uid32_t vki_qid_t;
2644 struct __anonstruct_94 {   2644 struct __anonstruct_94 {
2645    int  : 0 ;   2645    int  : 0 ;
2646 };   2646 };
2647 struct __anonstruct_95 {   2647 struct __anonstruct_95 {
2648    int  : 0 ;   2648    int  : 0 ;
2649 };   2649 };
2650 enum __anonenum_93 {   2650 enum __anonenum_93 {
2651     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,   2651     VKI_SNDRV_PCM_IOCTL_HW_FREE = 16658,
2652     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,   2652     VKI_SNDRV_PCM_IOCTL_HWSYNC = 16674,
2653     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,   2653     VKI_SNDRV_PCM_IOCTL_PREPARE = 16704,
2654     VKI_SNDRV_PCM_IOCTL_RESET = 16705,   2654     VKI_SNDRV_PCM_IOCTL_RESET = 16705,
2655     VKI_SNDRV_PCM_IOCTL_START = 16706,   2655     VKI_SNDRV_PCM_IOCTL_START = 16706,
2656     VKI_SNDRV_PCM_IOCTL_DROP = 16707,   2656     VKI_SNDRV_PCM_IOCTL_DROP = 16707,
2657     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,   2657     VKI_SNDRV_PCM_IOCTL_DRAIN = 16708,
2658     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,   2658     VKI_SNDRV_PCM_IOCTL_PAUSE = 1074020677,
2659     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,   2659     VKI_SNDRV_PCM_IOCTL_RESUME = 16711,
2660     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,   2660     VKI_SNDRV_PCM_IOCTL_XRUN = 16712,
2661     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,   2661     VKI_SNDRV_PCM_IOCTL_LINK = 1074020704,
2662     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737   2662     VKI_SNDRV_PCM_IOCTL_UNLINK = 16737
2663 } ;   2663 } ;
2664 enum __anonenum_96 {   2664 enum __anonenum_96 {
2665     VKI_SNDRV_TIMER_IOCTL_START = 21664,   2665     VKI_SNDRV_TIMER_IOCTL_START = 21664,
2666     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,   2666     VKI_SNDRV_TIMER_IOCTL_STOP = 21665,
2667     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,   2667     VKI_SNDRV_TIMER_IOCTL_CONTINUE = 21666,
2668     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667   2668     VKI_SNDRV_TIMER_IOCTL_PAUSE = 21667
2669 } ;   2669 } ;
2670 struct vki_serial_icounter_struct {   2670 struct vki_serial_icounter_struct {
2671    int cts ;   2671    int cts ;
2672    int dsr ;   2672    int dsr ;
2673    int rng ;   2673    int rng ;
2674    int dcd ;   2674    int dcd ;
2675    int rx ;   2675    int rx ;
2676    int tx ;   2676    int tx ;
2677    int frame ;   2677    int frame ;
2678    int overrun ;   2678    int overrun ;
2679    int parity ;   2679    int parity ;
2680    int brk ;   2680    int brk ;
2681    int buf_overrun ;   2681    int buf_overrun ;
2682    int reserved[9] ;   2682    int reserved[9] ;
2683 };   2683 };
2684 struct vki_vt_mode {   2684 struct vki_vt_mode {
2685    char mode ;   2685    char mode ;
2686    char waitv ;   2686    char waitv ;
2687    short relsig ;   2687    short relsig ;
2688    short acqsig ;   2688    short acqsig ;
2689    short frsig ;   2689    short frsig ;
2690 };   2690 };
2691 struct vki_vt_stat {   2691 struct vki_vt_stat {
2692    unsigned short v_active ;   2692    unsigned short v_active ;
2693    unsigned short v_signal ;   2693    unsigned short v_signal ;
2694    unsigned short v_state ;   2694    unsigned short v_state ;
2695 };   2695 };
2696 struct vki_vt_sizes {   2696 struct vki_vt_sizes {
2697    unsigned short v_rows ;   2697    unsigned short v_rows ;
2698    unsigned short v_cols ;   2698    unsigned short v_cols ;
2699    unsigned short v_scrollsize ;   2699    unsigned short v_scrollsize ;
2700 };   2700 };
2701 struct vki_vt_consize {   2701 struct vki_vt_consize {
2702    unsigned short v_rows ;   2702    unsigned short v_rows ;
2703    unsigned short v_cols ;   2703    unsigned short v_cols ;
2704    unsigned short v_vlin ;   2704    unsigned short v_vlin ;
2705    unsigned short v_clin ;   2705    unsigned short v_clin ;
2706    unsigned short v_vcol ;   2706    unsigned short v_vcol ;
2707    unsigned short v_ccol ;   2707    unsigned short v_ccol ;
2708 };   2708 };
2709 struct vki_usbdevfs_ctrltransfer {   2709 struct vki_usbdevfs_ctrltransfer {
2710    __vki_u8 bRequestType ;   2710    __vki_u8 bRequestType ;
2711    __vki_u8 bRequest ;   2711    __vki_u8 bRequest ;
2712    __vki_u16 wValue ;   2712    __vki_u16 wValue ;
2713    __vki_u16 wIndex ;   2713    __vki_u16 wIndex ;
2714    __vki_u16 wLength ;   2714    __vki_u16 wLength ;
2715    __vki_u32 timeout ;   2715    __vki_u32 timeout ;
2716    void *data ;   2716    void *data ;
2717 };   2717 };
2718 struct vki_usbdevfs_bulktransfer {   2718 struct vki_usbdevfs_bulktransfer {
2719    unsigned int ep ;   2719    unsigned int ep ;
2720    unsigned int len ;   2720    unsigned int len ;
2721    unsigned int timeout ;   2721    unsigned int timeout ;
2722    void *data ;   2722    void *data ;
2723 };   2723 };
2724 struct vki_usbdevfs_getdriver {   2724 struct vki_usbdevfs_getdriver {
2725    unsigned int interface ;   2725    unsigned int interface ;
2726    char driver[256] ;   2726    char driver[256] ;
2727 };   2727 };
2728 struct vki_usbdevfs_connectinfo {   2728 struct vki_usbdevfs_connectinfo {
2729    unsigned int devnum ;   2729    unsigned int devnum ;
2730    unsigned char slow ;   2730    unsigned char slow ;
2731 };   2731 };
2732 struct vki_usbdevfs_iso_packet_desc {   2732 struct vki_usbdevfs_iso_packet_desc {
2733    unsigned int length ;   2733    unsigned int length ;
2734    unsigned int actual_length ;   2734    unsigned int actual_length ;
2735    unsigned int status ;   2735    unsigned int status ;
2736 };   2736 };
2737 struct vki_usbdevfs_urb {   2737 struct vki_usbdevfs_urb {
2738    unsigned char type ;   2738    unsigned char type ;
2739    unsigned char endpoint ;   2739    unsigned char endpoint ;
2740    int status ;   2740    int status ;
2741    unsigned int flags ;   2741    unsigned int flags ;
2742    void *buffer ;   2742    void *buffer ;
2743    int buffer_length ;   2743    int buffer_length ;
2744    int actual_length ;   2744    int actual_length ;
2745    int start_frame ;   2745    int start_frame ;
2746    int number_of_packets ;   2746    int number_of_packets ;
2747    int error_count ;   2747    int error_count ;
2748    unsigned int signr ;   2748    unsigned int signr ;
2749    void *usercontext ;   2749    void *usercontext ;
2750    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;   2750    struct vki_usbdevfs_iso_packet_desc iso_frame_desc[0] ;
2751 };   2751 };
2752 struct vki_usbdevfs_ioctl {   2752 struct vki_usbdevfs_ioctl {
2753    int ifno ;   2753    int ifno ;
2754    int ioctl_code ;   2754    int ioctl_code ;
2755    void *data ;   2755    void *data ;
2756 };   2756 };
2757 struct vki_usbdevfs_setuppacket {   2757 struct vki_usbdevfs_setuppacket {
2758    __vki_u8 bRequestType ;   2758    __vki_u8 bRequestType ;
2759    __vki_u8 bRequest ;   2759    __vki_u8 bRequest ;
2760    __vki_u16 wValue ;   2760    __vki_u16 wValue ;
2761    __vki_u16 wIndex ;   2761    __vki_u16 wIndex ;
2762    __vki_u16 wLength ;   2762    __vki_u16 wLength ;
2763 };   2763 };
2764 typedef vki_int32_t vki_key_serial_t;   2764 typedef vki_int32_t vki_key_serial_t;
2765 typedef vki_uint32_t vki_key_perm_t;   2765 typedef vki_uint32_t vki_key_perm_t;
2766 struct vki_iw_param {   2766 struct vki_iw_param {
2767    __vki_s32 value ;   2767    __vki_s32 value ;
2768    __vki_u8 fixed ;   2768    __vki_u8 fixed ;
2769    __vki_u8 disabled ;   2769    __vki_u8 disabled ;
2770    __vki_u16 flags ;   2770    __vki_u16 flags ;
2771 };   2771 };
2772 struct vki_iw_point {   2772 struct vki_iw_point {
2773    void *pointer ;   2773    void *pointer ;
2774    __vki_u16 length ;   2774    __vki_u16 length ;
2775    __vki_u16 flags ;   2775    __vki_u16 flags ;
2776 };   2776 };
2777 struct vki_iw_freq {   2777 struct vki_iw_freq {
2778    __vki_s32 m ;   2778    __vki_s32 m ;
2779    __vki_s16 e ;   2779    __vki_s16 e ;
2780    __vki_u8 i ;   2780    __vki_u8 i ;
2781    __vki_u8 flags ;   2781    __vki_u8 flags ;
2782 };   2782 };
2783 struct vki_iw_quality {   2783 struct vki_iw_quality {
2784    __vki_u8 qual ;   2784    __vki_u8 qual ;
2785    __vki_u8 level ;   2785    __vki_u8 level ;
2786    __vki_u8 noise ;   2786    __vki_u8 noise ;
2787    __vki_u8 updated ;   2787    __vki_u8 updated ;
2788 };   2788 };
2789 union vki_iwreq_data {   2789 union vki_iwreq_data {
2790    char name[16] ;   2790    char name[16] ;
2791    struct vki_iw_point essid ;   2791    struct vki_iw_point essid ;
2792    struct vki_iw_param nwid ;   2792    struct vki_iw_param nwid ;
2793    struct vki_iw_freq freq ;   2793    struct vki_iw_freq freq ;
2794    struct vki_iw_param sens ;   2794    struct vki_iw_param sens ;
2795    struct vki_iw_param bitrate ;   2795    struct vki_iw_param bitrate ;
2796    struct vki_iw_param txpower ;   2796    struct vki_iw_param txpower ;
2797    struct vki_iw_param rts ;   2797    struct vki_iw_param rts ;
2798    struct vki_iw_param frag ;   2798    struct vki_iw_param frag ;
2799    __vki_u32 mode ;   2799    __vki_u32 mode ;
2800    struct vki_iw_param retry ;   2800    struct vki_iw_param retry ;
2801    struct vki_iw_point encoding ;   2801    struct vki_iw_point encoding ;
2802    struct vki_iw_param power ;   2802    struct vki_iw_param power ;
2803    struct vki_iw_quality qual ;   2803    struct vki_iw_quality qual ;
2804    struct vki_sockaddr ap_addr ;   2804    struct vki_sockaddr ap_addr ;
2805    struct vki_sockaddr addr ;   2805    struct vki_sockaddr addr ;
2806    struct vki_iw_param param ;   2806    struct vki_iw_param param ;
2807    struct vki_iw_point data ;   2807    struct vki_iw_point data ;
2808 };   2808 };
2809 union __anonunion_ifr_ifrn_97 {   2809 union __anonunion_ifr_ifrn_97 {
2810    char ifrn_name[16] ;   2810    char ifrn_name[16] ;
2811 };   2811 };
2812 struct vki_iwreq {   2812 struct vki_iwreq {
2813    union __anonunion_ifr_ifrn_97 ifr_ifrn ;   2813    union __anonunion_ifr_ifrn_97 ifr_ifrn ;
2814    union vki_iwreq_data u ;   2814    union vki_iwreq_data u ;
2815 };   2815 };
2816 union __anonunion____missing_field_name_98 {   2816 union __anonunion____missing_field_name_98 {
2817    __vki_u64 sample_period ;   2817    __vki_u64 sample_period ;
2818    __vki_u64 sample_freq ;   2818    __vki_u64 sample_freq ;
2819 };   2819 };
2820 union __anonunion____missing_field_name_99 {   2820 union __anonunion____missing_field_name_99 {
2821    __vki_u32 wakeup_events ;   2821    __vki_u32 wakeup_events ;
2822    __vki_u32 wakeup_watermark ;   2822    __vki_u32 wakeup_watermark ;
2823 };   2823 };
2824 union __anonunion____missing_field_name_100 {   2824 union __anonunion____missing_field_name_100 {
2825    __vki_u64 bp_addr ;   2825    __vki_u64 bp_addr ;
2826    __vki_u64 config1 ;   2826    __vki_u64 config1 ;
2827 };   2827 };
2828 union __anonunion____missing_field_name_101 {   2828 union __anonunion____missing_field_name_101 {
2829    __vki_u64 bp_len ;   2829    __vki_u64 bp_len ;
2830    __vki_u64 config2 ;   2830    __vki_u64 config2 ;
2831 };   2831 };
2832 struct vki_perf_event_attr {   2832 struct vki_perf_event_attr {
2833    __vki_u32 type ;   2833    __vki_u32 type ;
2834    __vki_u32 size ;   2834    __vki_u32 size ;
2835    __vki_u64 config ;   2835    __vki_u64 config ;
2836    union __anonunion____missing_field_name_98 __annonCompField1 ;   2836    union __anonunion____missing_field_name_98 __annonCompField1 ;
2837    __vki_u64 sample_type ;   2837    __vki_u64 sample_type ;
2838    __vki_u64 read_format ;   2838    __vki_u64 read_format ;
2839    __vki_u64 disabled : 1 ;   2839    __vki_u64 disabled : 1 ;
2840    __vki_u64 inherit : 1 ;   2840    __vki_u64 inherit : 1 ;
2841    __vki_u64 pinned : 1 ;   2841    __vki_u64 pinned : 1 ;
2842    __vki_u64 exclusive : 1 ;   2842    __vki_u64 exclusive : 1 ;
2843    __vki_u64 exclude_user : 1 ;   2843    __vki_u64 exclude_user : 1 ;
2844    __vki_u64 exclude_kernel : 1 ;   2844    __vki_u64 exclude_kernel : 1 ;
2845    __vki_u64 exclude_hv : 1 ;   2845    __vki_u64 exclude_hv : 1 ;
2846    __vki_u64 exclude_idle : 1 ;   2846    __vki_u64 exclude_idle : 1 ;
2847    __vki_u64 mmap : 1 ;   2847    __vki_u64 mmap : 1 ;
2848    __vki_u64 comm : 1 ;   2848    __vki_u64 comm : 1 ;
2849    __vki_u64 freq : 1 ;   2849    __vki_u64 freq : 1 ;
2850    __vki_u64 inherit_stat : 1 ;   2850    __vki_u64 inherit_stat : 1 ;
2851    __vki_u64 enable_on_exec : 1 ;   2851    __vki_u64 enable_on_exec : 1 ;
2852    __vki_u64 task : 1 ;   2852    __vki_u64 task : 1 ;
2853    __vki_u64 watermark : 1 ;   2853    __vki_u64 watermark : 1 ;
2854    __vki_u64 precise_ip : 2 ;   2854    __vki_u64 precise_ip : 2 ;
2855    __vki_u64 mmap_data : 1 ;   2855    __vki_u64 mmap_data : 1 ;
2856    __vki_u64 sample_id_all : 1 ;   2856    __vki_u64 sample_id_all : 1 ;
2857    __vki_u64 __reserved_1 : 45 ;   2857    __vki_u64 __reserved_1 : 45 ;
2858    union __anonunion____missing_field_name_99 __annonCompField2 ;   2858    union __anonunion____missing_field_name_99 __annonCompField2 ;
2859    __vki_u32 bp_type ;   2859    __vki_u32 bp_type ;
2860    union __anonunion____missing_field_name_100 __annonCompField3 ;   2860    union __anonunion____missing_field_name_100 __annonCompField3 ;
2861    union __anonunion____missing_field_name_101 __annonCompField4 ;   2861    union __anonunion____missing_field_name_101 __annonCompField4 ;
2862 };   2862 };
2863 struct vki_getcpu_cache {   2863 struct vki_getcpu_cache {
2864    unsigned long blob[128U / sizeof(long )] ;   2864    unsigned long blob[128U / sizeof(long )] ;
2865 };   2865 };
2866 typedef int __jmp_buf[6];   2866 typedef int __jmp_buf[6];
2867 typedef int __sig_atomic_t;   2867 typedef int __sig_atomic_t;
2868 struct __anonstruct___sigset_t_102 {   2868 struct __anonstruct___sigset_t_102 {
2869    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;   2869    unsigned long __val[1024U / (8U * sizeof(unsigned long ))] ;
2870 };   2870 };
2871 typedef struct __anonstruct___sigset_t_102 __sigset_t;   2871 typedef struct __anonstruct___sigset_t_102 __sigset_t;
2872 struct __jmp_buf_tag {   2872 struct __jmp_buf_tag {
2873    __jmp_buf __jmpbuf ;   2873    __jmp_buf __jmpbuf ;
2874    int __mask_was_saved ;   2874    int __mask_was_saved ;
2875    __sigset_t __saved_mask ;   2875    __sigset_t __saved_mask ;
2876 };   2876 };
2877 typedef struct __jmp_buf_tag jmp_buf[1];   2877 typedef struct __jmp_buf_tag jmp_buf[1];
2878 typedef struct __jmp_buf_tag sigjmp_buf[1];   2878 typedef struct __jmp_buf_tag sigjmp_buf[1];
2879 enum ThreadStatus {   2879 enum ThreadStatus {
2880     VgTs_Empty = 0,   2880     VgTs_Empty = 0,
2881     VgTs_Init = 1,   2881     VgTs_Init = 1,
2882     VgTs_Runnable = 2,   2882     VgTs_Runnable = 2,
2883     VgTs_WaitSys = 3,   2883     VgTs_WaitSys = 3,
2884     VgTs_Yielding = 4,   2884     VgTs_Yielding = 4,
2885     VgTs_Zombie = 5   2885     VgTs_Zombie = 5
2886 } ;   2886 } ;
2887 typedef enum ThreadStatus ThreadStatus;   2887 typedef enum ThreadStatus ThreadStatus;
2888 enum __anonenum_VgSchedReturnCode_103 {   2888 enum __anonenum_VgSchedReturnCode_103 {
2889     VgSrc_None = 0,   2889     VgSrc_None = 0,
2890     VgSrc_ExitThread = 1,   2890     VgSrc_ExitThread = 1,
2891     VgSrc_ExitProcess = 2,   2891     VgSrc_ExitProcess = 2,
2892     VgSrc_FatalSig = 3   2892     VgSrc_FatalSig = 3
2893 } ;   2893 } ;
2894 typedef enum __anonenum_VgSchedReturnCode_103 VgSchedReturnCode;   2894 typedef enum __anonenum_VgSchedReturnCode_103 VgSchedReturnCode;
2895 typedef VexGuestX86State VexGuestArchState;   2895 typedef VexGuestX86State VexGuestArchState;
2896 struct SyscallStatus;   2896 struct SyscallStatus;
2897 struct SyscallStatus;   2897 struct SyscallStatus;
2898 struct SyscallArgs;   2898 struct SyscallArgs;
2899 struct SyscallArgs;   2899 struct SyscallArgs;
2900 struct __anonstruct_ThreadArchState_104 {   2900 struct __anonstruct_ThreadArchState_104 {
2901    VexGuestArchState vex  __attribute__((__aligned__(16))) ;   2901    VexGuestArchState vex  __attribute__((__aligned__(16))) ;
2902    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;   2902    VexGuestArchState vex_shadow1  __attribute__((__aligned__(16))) ;
2903    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;   2903    VexGuestArchState vex_shadow2  __attribute__((__aligned__(16))) ;
2904    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;   2904    UChar vex_spill[4096]  __attribute__((__aligned__(16))) ;
2905 };   2905 };
2906 typedef struct __anonstruct_ThreadArchState_104 ThreadArchState;   2906 typedef struct __anonstruct_ThreadArchState_104 ThreadArchState;
2907 struct __anonstruct_ThreadOSstate_105 {   2907 struct __anonstruct_ThreadOSstate_105 {
2908    Int lwpid ;   2908    Int lwpid ;
2909    Int threadgroup ;   2909    Int threadgroup ;
2910    ThreadId parent ;   2910    ThreadId parent ;
2911    Addr valgrind_stack_base ;   2911    Addr valgrind_stack_base ;
2912    Addr valgrind_stack_init_SP ;   2912    Addr valgrind_stack_init_SP ;
2913    Word exitcode ;   2913    Word exitcode ;
2914    Int fatalsig ;   2914    Int fatalsig ;
2915 };   2915 };
2916 typedef struct __anonstruct_ThreadOSstate_105 ThreadOSstate;   2916 typedef struct __anonstruct_ThreadOSstate_105 ThreadOSstate;
2917 struct SigQueue;   2917 struct SigQueue;
2918 struct __anonstruct_ThreadState_106 {   2918 struct __anonstruct_ThreadState_106 {
2919    ThreadId tid ;   2919    ThreadId tid ;
2920    ThreadStatus status ;   2920    ThreadStatus status ;
2921    VgSchedReturnCode exitreason ;   2921    VgSchedReturnCode exitreason ;
2922    ThreadArchState arch ;   2922    ThreadArchState arch ;
2923    vki_sigset_t sig_mask ;   2923    vki_sigset_t sig_mask ;
2924    vki_sigset_t tmp_sig_mask ;   2924    vki_sigset_t tmp_sig_mask ;
2925    struct SigQueue *sig_queue ;   2925    struct SigQueue *sig_queue ;
2926    SizeT client_stack_szB ;   2926    SizeT client_stack_szB ;
2927    Addr client_stack_highest_word ;   2927    Addr client_stack_highest_word ;
2928    vki_stack_t altstack ;   2928    vki_stack_t altstack ;
2929    ThreadOSstate os_state ;   2929    ThreadOSstate os_state ;
2930    UInt err_disablement_level ;   2930    UInt err_disablement_level ;
2931    Bool sched_jmpbuf_valid ;   2931    Bool sched_jmpbuf_valid ;
2932    UInt sched_jmpbuf[9] ;   2932    UInt sched_jmpbuf[9] ;
2933 };   2933 };
2934 typedef struct __anonstruct_ThreadState_106 ThreadState;   2934 typedef struct __anonstruct_ThreadState_106 ThreadState;
2935 enum __anonenum_Vg_FnNameKind_107 {   2935 enum __anonenum_Vg_FnNameKind_107 {
2936     Vg_FnNameNormal = 0,   2936     Vg_FnNameNormal = 0,
2937     Vg_FnNameMain = 1,   2937     Vg_FnNameMain = 1,
2938     Vg_FnNameBelowMain = 2   2938     Vg_FnNameBelowMain = 2
2939 } ;   2939 } ;
2940 typedef enum __anonenum_Vg_FnNameKind_107 Vg_FnNameKind;   2940 typedef enum __anonenum_Vg_FnNameKind_107 Vg_FnNameKind;
2941 struct __anonstruct_StackBlock_108 {   2941 struct __anonstruct_StackBlock_108 {
2942    PtrdiffT base ;   2942    PtrdiffT base ;
2943    SizeT szB ;   2943    SizeT szB ;
2944    Bool spRel ;   2944    Bool spRel ;
2945    Bool isVec ;   2945    Bool isVec ;
2946    HChar name[16] ;   2946    HChar name[16] ;
2947 };   2947 };
2948 typedef struct __anonstruct_StackBlock_108 StackBlock;   2948 typedef struct __anonstruct_StackBlock_108 StackBlock;
2949 struct __anonstruct_GlobalBlock_109 {   2949 struct __anonstruct_GlobalBlock_109 {
2950    Addr addr ;   2950    Addr addr ;
2951    SizeT szB ;   2951    SizeT szB ;
2952    Bool isVec ;   2952    Bool isVec ;
2953    HChar name[16] ;   2953    HChar name[16] ;
2954    HChar soname[16] ;   2954    HChar soname[16] ;
2955 };   2955 };
2956 typedef struct __anonstruct_GlobalBlock_109 GlobalBlock;   2956 typedef struct __anonstruct_GlobalBlock_109 GlobalBlock;
2957 struct _DebugInfo;   2957 struct _DebugInfo;
2958 typedef struct _DebugInfo DebugInfo;   2958 typedef struct _DebugInfo DebugInfo;
2959 enum __anonenum_VgSectKind_110 {   2959 enum __anonenum_VgSectKind_110 {
2960     Vg_SectUnknown = 0,   2960     Vg_SectUnknown = 0,
2961     Vg_SectText = 1,   2961     Vg_SectText = 1,
2962     Vg_SectData = 2,   2962     Vg_SectData = 2,
2963     Vg_SectBSS = 3,   2963     Vg_SectBSS = 3,
2964     Vg_SectGOT = 4,   2964     Vg_SectGOT = 4,
2965     Vg_SectPLT = 5,   2965     Vg_SectPLT = 5,
2966     Vg_SectGOTPLT = 6,   2966     Vg_SectGOTPLT = 6,
2967     Vg_SectOPD = 7   2967     Vg_SectOPD = 7
2968 } ;   2968 } ;
2969 typedef enum __anonenum_VgSectKind_110 VgSectKind;   2969 typedef enum __anonenum_VgSectKind_110 VgSectKind;
2970 struct __anonstruct_D3UnwindRegs_111 {   2970 struct __anonstruct_D3UnwindRegs_111 {
2971    Addr xip ;   2971    Addr xip ;
2972    Addr xsp ;   2972    Addr xsp ;
2973    Addr xbp ;   2973    Addr xbp ;
2974 };   2974 };
2975 typedef struct __anonstruct_D3UnwindRegs_111 D3UnwindRegs;   2975 typedef struct __anonstruct_D3UnwindRegs_111 D3UnwindRegs;
2976 enum __anonenum_SegKind_112 {   2976 enum __anonenum_SegKind_112 {
2977     SkFree = 0,   2977     SkFree = 0,
2978     SkAnonC = 1,   2978     SkAnonC = 1,
2979     SkAnonV = 2,   2979     SkAnonV = 2,
2980     SkFileC = 3,   2980     SkFileC = 3,
2981     SkFileV = 4,   2981     SkFileV = 4,
2982     SkShmC = 5,   2982     SkShmC = 5,
2983     SkResvn = 6   2983     SkResvn = 6
2984 } ;   2984 } ;
2985 typedef enum __anonenum_SegKind_112 SegKind;   2985 typedef enum __anonenum_SegKind_112 SegKind;
2986 enum __anonenum_ShrinkMode_113 {   2986 enum __anonenum_ShrinkMode_113 {
2987     SmLower = 0,   2987     SmLower = 0,
2988     SmFixed = 1,   2988     SmFixed = 1,
2989     SmUpper = 2   2989     SmUpper = 2
2990 } ;   2990 } ;
2991 typedef enum __anonenum_ShrinkMode_113 ShrinkMode;   2991 typedef enum __anonenum_ShrinkMode_113 ShrinkMode;
2992 struct __anonstruct_NSegment_114 {   2992 struct __anonstruct_NSegment_114 {
2993    SegKind kind ;   2993    SegKind kind ;
2994    Addr start ;   2994    Addr start ;
2995    Addr end ;   2995    Addr end ;
2996    ShrinkMode smode ;   2996    ShrinkMode smode ;
2997    ULong dev ;   2997    ULong dev ;
2998    ULong ino ;   2998    ULong ino ;
2999    Off64T offset ;   2999    Off64T offset ;
3000    UInt mode ;   3000    UInt mode ;
3001    Int fnIdx ;   3001    Int fnIdx ;
3002    Bool hasR ;   3002    Bool hasR ;
3003    Bool hasW ;   3003    Bool hasW ;
3004    Bool hasX ;   3004    Bool hasX ;
3005    Bool hasT ;   3005    Bool hasT ;
3006    Bool isCH ;   3006    Bool isCH ;
3007    Bool mark ;   3007    Bool mark ;
3008 };   3008 };
3009 typedef struct __anonstruct_NSegment_114 NSegment;   3009 typedef struct __anonstruct_NSegment_114 NSegment;
3010 enum __anonenum_rkind_116 {   3010 enum __anonenum_rkind_116 {
3011     MFixed = 0,   3011     MFixed = 0,
3012     MHint = 1,   3012     MHint = 1,
3013     MAny = 2   3013     MAny = 2
3014 } ;   3014 } ;
3015 struct __anonstruct_MapRequest_115 {   3015 struct __anonstruct_MapRequest_115 {
3016    enum __anonenum_rkind_116 rkind ;   3016    enum __anonenum_rkind_116 rkind ;
3017    Addr start ;   3017    Addr start ;
3018    Addr len ;   3018    Addr len ;
3019 };   3019 };
3020 typedef struct __anonstruct_MapRequest_115 MapRequest;   3020 typedef struct __anonstruct_MapRequest_115 MapRequest;
3021 struct __anonstruct_VgStack_117 {   3021 struct __anonstruct_VgStack_117 {
3022    HChar bytes[1064960] ;   3022    HChar bytes[1064960] ;
3023 };   3023 };
3024 typedef struct __anonstruct_VgStack_117 VgStack;   3024 typedef struct __anonstruct_VgStack_117 VgStack;
3025 struct __anonstruct_FastCacheEntry_118 {   3025 struct __anonstruct_FastCacheEntry_118 {
3026    Addr guest ;   3026    Addr guest ;
3027    Addr host ;   3027    Addr host ;
3028 };   3028 };
3029 typedef struct __anonstruct_FastCacheEntry_118 FastCacheEntry;   3029 typedef struct __anonstruct_FastCacheEntry_118 FastCacheEntry;
3030 struct _BBProfEntry {   3030 struct _BBProfEntry {
3031    Addr64 addr ;   3031    Addr64 addr ;
3032    ULong score ;   3032    ULong score ;
3033 };   3033 };
3034 typedef struct _BBProfEntry BBProfEntry;   3034 typedef struct _BBProfEntry BBProfEntry;
3035 struct _XArray;   3035 struct _XArray;
3036 typedef struct _XArray XArray;   3036 typedef struct _XArray XArray;
3037 struct _ExeContext;   3037 struct _ExeContext;
3038 typedef struct _ExeContext ExeContext;   3038 typedef struct _ExeContext ExeContext;
3039 enum __anonenum_VgRes_119 {   3039 enum __anonenum_VgRes_119 {
3040     Vg_LowRes = 0,   3040     Vg_LowRes = 0,
3041     Vg_MedRes = 1,   3041     Vg_MedRes = 1,
3042     Vg_HighRes = 2   3042     Vg_HighRes = 2
3043 } ;   3043 } ;
3044 typedef enum __anonenum_VgRes_119 VgRes;   3044 typedef enum __anonenum_VgRes_119 VgRes;
3045 typedef Int ErrorKind;   3045 typedef Int ErrorKind;
3046 struct _Error;   3046 struct _Error;
3047 typedef struct _Error Error;   3047 typedef struct _Error Error;
3048 typedef Int SuppKind;   3048 typedef Int SuppKind;
3049 struct _Supp;   3049 struct _Supp;
3050 typedef struct _Supp Supp;   3050 typedef struct _Supp Supp;
3051 enum __anonenum_CoreErrorKind_120 {   3051 enum __anonenum_CoreErrorKind_120 {
3052     ThreadErr = -1   3052     ThreadErr = -1
3053 } ;   3053 } ;
3054 typedef enum __anonenum_CoreErrorKind_120 CoreErrorKind;   3054 typedef enum __anonenum_CoreErrorKind_120 CoreErrorKind;
3055 enum __anonenum_PointKind_121 {   3055 enum __anonenum_PointKind_121 {
3056     software_breakpoint = 0,   3056     software_breakpoint = 0,
3057     hardware_breakpoint = 1,   3057     hardware_breakpoint = 1,
3058     write_watchpoint = 2,   3058     write_watchpoint = 2,
3059     read_watchpoint = 3,   3059     read_watchpoint = 3,
3060     access_watchpoint = 4   3060     access_watchpoint = 4
3061 } ;   3061 } ;
3062 typedef enum __anonenum_PointKind_121 PointKind;   3062 typedef enum __anonenum_PointKind_121 PointKind;
3063 enum __anonenum_kwd_report_error_122 {   3063 enum __anonenum_kwd_report_error_122 {
3064     kwd_report_none = 0,   3064     kwd_report_none = 0,
3065     kwd_report_all = 1,   3065     kwd_report_all = 1,
3066     kwd_report_duplicated_matches = 2   3066     kwd_report_duplicated_matches = 2
3067 } ;   3067 } ;
3068 typedef enum __anonenum_kwd_report_error_122 kwd_report_error;   3068 typedef enum __anonenum_kwd_report_error_122 kwd_report_error;
3069 struct vg_stat {   3069 struct vg_stat {
3070    ULong dev ;   3070    ULong dev ;
3071    ULong ino ;   3071    ULong ino ;
3072    ULong nlink ;   3072    ULong nlink ;
3073    UInt mode ;   3073    UInt mode ;
3074    UInt uid ;   3074    UInt uid ;
3075    UInt gid ;   3075    UInt gid ;
3076    ULong rdev ;   3076    ULong rdev ;
3077    Long size ;   3077    Long size ;
3078    ULong blksize ;   3078    ULong blksize ;
3079    ULong blocks ;   3079    ULong blocks ;
3080    ULong atime ;   3080    ULong atime ;
3081    ULong atime_nsec ;   3081    ULong atime_nsec ;
3082    ULong mtime ;   3082    ULong mtime ;
3083    ULong mtime_nsec ;   3083    ULong mtime_nsec ;
3084    ULong ctime ;   3084    ULong ctime ;
3085    ULong ctime_nsec ;   3085    ULong ctime_nsec ;
3086 };   3086 };
3087 enum __anonenum_VgMsgKind_123 {   3087 enum __anonenum_VgMsgKind_123 {
3088     Vg_FailMsg = 0,   3088     Vg_FailMsg = 0,
3089     Vg_UserMsg = 1,   3089     Vg_UserMsg = 1,
3090     Vg_DebugMsg = 2,   3090     Vg_DebugMsg = 2,
3091     Vg_ClientMsg = 3   3091     Vg_ClientMsg = 3
3092 } ;   3092 } ;
3093 typedef enum __anonenum_VgMsgKind_123 VgMsgKind;   3093 typedef enum __anonenum_VgMsgKind_123 VgMsgKind;
3094 struct __anonstruct_OutputSink_124 {   3094 struct __anonstruct_OutputSink_124 {
3095    Int fd ;   3095    Int fd ;
3096    Bool is_socket ;   3096    Bool is_socket ;
3097 };   3097 };
3098 typedef struct __anonstruct_OutputSink_124 OutputSink;   3098 typedef struct __anonstruct_OutputSink_124 OutputSink;
3099 typedef void (*vg_atfork_t)(ThreadId  );   3099 typedef void (*vg_atfork_t)(ThreadId  );
3100 typedef Int ArenaId;   3100 typedef Int ArenaId;
3101 struct vg_mallinfo {   3101 struct vg_mallinfo {
3102    int arena ;   3102    int arena ;
3103    int ordblks ;   3103    int ordblks ;
3104    int smblks ;   3104    int smblks ;
3105    int hblks ;   3105    int hblks ;
3106    int hblkhd ;   3106    int hblkhd ;
3107    int usmblks ;   3107    int usmblks ;
3108    int fsmblks ;   3108    int fsmblks ;
3109    int uordblks ;   3109    int uordblks ;
3110    int fordblks ;   3110    int fordblks ;
3111    int keepcost ;   3111    int keepcost ;
3112 };   3112 };
3113 enum __anonenum_VgVgdb_125 {   3113 enum __anonenum_VgVgdb_125 {
3114     Vg_VgdbNo = 0,   3114     Vg_VgdbNo = 0,
3115     Vg_VgdbYes = 1,   3115     Vg_VgdbYes = 1,
3116     Vg_VgdbFull = 2   3116     Vg_VgdbFull = 2
3117 } ;   3117 } ;
3118 typedef enum __anonenum_VgVgdb_125 VgVgdb;   3118 typedef enum __anonenum_VgVgdb_125 VgVgdb;
3119 enum FairSchedType {   3119 enum FairSchedType {
3120     disable_fair_sched = 0,   3120     disable_fair_sched = 0,
3121     enable_fair_sched = 1,   3121     enable_fair_sched = 1,
3122     try_fair_sched = 2   3122     try_fair_sched = 2
3123 } ;   3123 } ;
3124 enum __anonenum_VgSmc_126 {   3124 enum __anonenum_VgSmc_126 {
3125     Vg_SmcNone = 0,   3125     Vg_SmcNone = 0,
3126     Vg_SmcStack = 1,   3126     Vg_SmcStack = 1,
3127     Vg_SmcAll = 2,   3127     Vg_SmcAll = 2,
3128     Vg_SmcAllNonFile = 3   3128     Vg_SmcAllNonFile = 3
3129 } ;   3129 } ;
3130 typedef enum __anonenum_VgSmc_126 VgSmc;   3130 typedef enum __anonenum_VgSmc_126 VgSmc;
3131 typedef Addr *StackTrace;   3131 typedef Addr *StackTrace;
3132 struct __anonstruct_VgCallbackClosure_127 {   3132 struct __anonstruct_VgCallbackClosure_127 {
3133    Addr64 nraddr ;   3133    Addr64 nraddr ;
3134    Addr64 readdr ;   3134    Addr64 readdr ;
3135    ThreadId tid ;   3135    ThreadId tid ;
3136 };   3136 };
3137 typedef struct __anonstruct_VgCallbackClosure_127 VgCallbackClosure;   3137 typedef struct __anonstruct_VgCallbackClosure_127 VgCallbackClosure;
3138 enum __anonenum_CorePart_128 {   3138 enum __anonenum_CorePart_128 {
3139     Vg_CoreStartup = 1,   3139     Vg_CoreStartup = 1,
3140     Vg_CoreSignal = 2,   3140     Vg_CoreSignal = 2,
3141     Vg_CoreSysCall = 3,   3141     Vg_CoreSysCall = 3,
3142     Vg_CoreSysCallArgInMem = 4,   3142     Vg_CoreSysCallArgInMem = 4,
3143     Vg_CoreTranslate = 5,   3143     Vg_CoreTranslate = 5,
3144     Vg_CoreClientReq = 6   3144     Vg_CoreClientReq = 6
3145 } ;   3145 } ;
3146 typedef enum __anonenum_CorePart_128 CorePart;   3146 typedef enum __anonenum_CorePart_128 CorePart;
3147 struct __anonstruct_VgDetails_129 {   3147 struct __anonstruct_VgDetails_129 {
3148    Char *name ;   3148    Char *name ;
3149    Char *version ;   3149    Char *version ;
3150    Char *description ;   3150    Char *description ;
3151    Char *copyright_author ;   3151    Char *copyright_author ;
3152    Char *bug_reports_to ;   3152    Char *bug_reports_to ;
3153    UInt avg_translation_sizeB ;   3153    UInt avg_translation_sizeB ;
3154 };   3154 };
3155 typedef struct __anonstruct_VgDetails_129 VgDetails;   3155 typedef struct __anonstruct_VgDetails_129 VgDetails;
3156 struct __anonstruct_VgNeeds_130 {   3156 struct __anonstruct_VgNeeds_130 {
3157    Bool libc_freeres ;   3157    Bool libc_freeres ;
3158    Bool core_errors ;   3158    Bool core_errors ;
3159    Bool tool_errors ;   3159    Bool tool_errors ;
3160    Bool superblock_discards ;   3160    Bool superblock_discards ;
3161    Bool command_line_options ;   3161    Bool command_line_options ;
3162    Bool client_requests ;   3162    Bool client_requests ;
3163    Bool syscall_wrapper ;   3163    Bool syscall_wrapper ;
3164    Bool sanity_checks ;   3164    Bool sanity_checks ;
3165    Bool var_info ;   3165    Bool var_info ;
3166    Bool malloc_replacement ;   3166    Bool malloc_replacement ;
3167    Bool xml_output ;   3167    Bool xml_output ;
3168    Bool final_IR_tidy_pass ;   3168    Bool final_IR_tidy_pass ;
3169 };   3169 };
3170 typedef struct __anonstruct_VgNeeds_130 VgNeeds;   3170 typedef struct __anonstruct_VgNeeds_130 VgNeeds;
3171 struct __anonstruct_VgToolInterface_131 {   3171 struct __anonstruct_VgToolInterface_131 {
3172    void (*tool_pre_clo_init)(void) ;   3172    void (*tool_pre_clo_init)(void) ;
3173    void (*tool_post_clo_init)(void) ;   3173    void (*tool_post_clo_init)(void) ;
3174    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,   3174    IRSB *(*tool_instrument)(VgCallbackClosure * , IRSB * , VexGuestLayout * ,
3175                             VexGuestExtents * , IRType  , IRType  ) ;   3175                             VexGuestExtents * , IRType  , IRType  ) ;
3176    void (*tool_fini)(Int  ) ;   3176    void (*tool_fini)(Int  ) ;
3177    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;   3177    Bool (*tool_eq_Error)(VgRes  , Error * , Error * ) ;
3178    void (*tool_before_pp_Error)(Error * ) ;   3178    void (*tool_before_pp_Error)(Error * ) ;
3179    void (*tool_pp_Error)(Error * ) ;   3179    void (*tool_pp_Error)(Error * ) ;
3180    Bool tool_show_ThreadIDs_for_errors ;   3180    Bool tool_show_ThreadIDs_for_errors ;
3181    UInt (*tool_update_extra)(Error * ) ;   3181    UInt (*tool_update_extra)(Error * ) ;
3182    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;   3182    Bool (*tool_recognised_suppression)(Char * , Supp * ) ;
3183    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;   3183    Bool (*tool_read_extra_suppression_info)(Int  , Char ** , SizeT * , Supp * ) ;
3184    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;   3184    Bool (*tool_error_matches_suppression)(Error * , Supp * ) ;
3185    Char *(*tool_get_error_name)(Error * ) ;   3185    Char *(*tool_get_error_name)(Error * ) ;
3186    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;   3186    Bool (*tool_get_extra_suppression_info)(Error * , Char * , Int  ) ;
3187    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;   3187    void (*tool_discard_superblock_info)(Addr64  , VexGuestExtents  ) ;
3188    Bool (*tool_process_cmd_line_option)(Char * ) ;   3188    Bool (*tool_process_cmd_line_option)(Char * ) ;
3189    void (*tool_print_usage)(void) ;   3189    void (*tool_print_usage)(void) ;
3190    void (*tool_print_debug_usage)(void) ;   3190    void (*tool_print_debug_usage)(void) ;
3191    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;   3191    Bool (*tool_handle_client_request)(ThreadId  , UWord * , UWord * ) ;
3192    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;   3192    void (*tool_pre_syscall)(ThreadId  , UInt  , UWord * , UInt  ) ;
3193    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;   3193    void (*tool_post_syscall)(ThreadId  , UInt  , UWord * , UInt  , SysRes  ) ;
3194    Bool (*tool_cheap_sanity_check)(void) ;   3194    Bool (*tool_cheap_sanity_check)(void) ;
3195    Bool (*tool_expensive_sanity_check)(void) ;   3195    Bool (*tool_expensive_sanity_check)(void) ;
3196    void *(*tool_malloc)(ThreadId  , SizeT  ) ;   3196    void *(*tool_malloc)(ThreadId  , SizeT  ) ;
3197    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;   3197    void *(*tool___builtin_new)(ThreadId  , SizeT  ) ;
3198    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;   3198    void *(*tool___builtin_vec_new)(ThreadId  , SizeT  ) ;
3199    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;   3199    void *(*tool_memalign)(ThreadId  , SizeT  , SizeT  ) ;
3200    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;   3200    void *(*tool_calloc)(ThreadId  , SizeT  , SizeT  ) ;
3201    void (*tool_free)(ThreadId  , void * ) ;   3201    void (*tool_free)(ThreadId  , void * ) ;
3202    void (*tool___builtin_delete)(ThreadId  , void * ) ;   3202    void (*tool___builtin_delete)(ThreadId  , void * ) ;
3203    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;   3203    void (*tool___builtin_vec_delete)(ThreadId  , void * ) ;
3204    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;   3204    void *(*tool_realloc)(ThreadId  , void * , SizeT  ) ;
3205    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;   3205    SizeT (*tool_malloc_usable_size)(ThreadId  , void * ) ;
3206    SizeT tool_client_redzone_szB ;   3206    SizeT tool_client_redzone_szB ;
3207    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;   3207    IRSB *(*tool_final_IR_tidy_pass)(IRSB * ) ;
3208    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,   3208    void (*track_new_mem_startup)(Addr  , SizeT  , Bool  , Bool  , Bool  ,
3209                                  ULong  ) ;   3209                                  ULong  ) ;
3210    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;   3210    void (*track_new_mem_stack_signal)(Addr  , SizeT  , ThreadId  ) ;
3211    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;   3211    void (*track_new_mem_brk)(Addr  , SizeT  , ThreadId  ) ;
3212    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;   3212    void (*track_new_mem_mmap)(Addr  , SizeT  , Bool  , Bool  , Bool  , ULong  ) ;
3213    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;   3213    void (*track_copy_mem_remap)(Addr src , Addr dst , SizeT  ) ;
3214    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;   3214    void (*track_change_mem_mprotect)(Addr  , SizeT  , Bool  , Bool  , Bool  ) ;
3215    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;   3215    void (*track_die_mem_stack_signal)(Addr  , SizeT  ) ;
3216    void (*track_die_mem_brk)(Addr  , SizeT  ) ;   3216    void (*track_die_mem_brk)(Addr  , SizeT  ) ;
3217    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;   3217    void (*track_die_mem_munmap)(Addr  , SizeT  ) ;
3218    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,   3218    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_4_w_ECU))(Addr  ,
3219                                                                           UInt  ) ;   3219                                                                           UInt  ) ;
3220    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,   3220    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_8_w_ECU))(Addr  ,
3221                                                                           UInt  ) ;   3221                                                                           UInt  ) ;
3222    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,   3222    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_12_w_ECU))(Addr  ,
3223                                                                            UInt  ) ;   3223                                                                            UInt  ) ;
3224    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,   3224    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_16_w_ECU))(Addr  ,
3225                                                                            UInt  ) ;   3225                                                                            UInt  ) ;
3226    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,   3226    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_32_w_ECU))(Addr  ,
3227                                                                            UInt  ) ;   3227                                                                            UInt  ) ;
3228    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,   3228    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_112_w_ECU))(Addr  ,
3229                                                                             UInt  ) ;   3229                                                                             UInt  ) ;
3230    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,   3230    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_128_w_ECU))(Addr  ,
3231                                                                             UInt  ) ;   3231                                                                             UInt  ) ;
3232    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,   3232    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_144_w_ECU))(Addr  ,
3233                                                                             UInt  ) ;   3233                                                                             UInt  ) ;
3234    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,   3234    void ( __attribute__((__regparm__(2))) (*track_new_mem_stack_160_w_ECU))(Addr  ,
3235                                                                             UInt  ) ;   3235                                                                             UInt  ) ;
3236    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;   3236    void (*track_new_mem_stack_w_ECU)(Addr  , SizeT  , UInt  ) ;
3237    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;   3237    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_4))(Addr  ) ;
3238    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;   3238    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_8))(Addr  ) ;
3239    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;   3239    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_12))(Addr  ) ;
3240    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;   3240    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_16))(Addr  ) ;
3241    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;   3241    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_32))(Addr  ) ;
3242    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;   3242    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_112))(Addr  ) ;
3243    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;   3243    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_128))(Addr  ) ;
3244    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;   3244    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_144))(Addr  ) ;
3245    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;   3245    void ( __attribute__((__regparm__(1))) (*track_new_mem_stack_160))(Addr  ) ;
3246    void (*track_new_mem_stack)(Addr  , SizeT  ) ;   3246    void (*track_new_mem_stack)(Addr  , SizeT  ) ;
3247    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;   3247    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_4))(Addr  ) ;
3248    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;   3248    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_8))(Addr  ) ;
3249    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;   3249    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_12))(Addr  ) ;
3250    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;   3250    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_16))(Addr  ) ;
3251    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;   3251    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_32))(Addr  ) ;
3252    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;   3252    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_112))(Addr  ) ;
3253    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;   3253    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_128))(Addr  ) ;
3254    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;   3254    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_144))(Addr  ) ;
3255    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;   3255    void ( __attribute__((__regparm__(1))) (*track_die_mem_stack_160))(Addr  ) ;
3256    void (*track_die_mem_stack)(Addr  , SizeT  ) ;   3256    void (*track_die_mem_stack)(Addr  , SizeT  ) ;
3257    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;   3257    void (*track_ban_mem_stack)(Addr  , SizeT  ) ;
3258    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3258    void (*track_pre_mem_read)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3259    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;   3259    void (*track_pre_mem_read_asciiz)(CorePart  , ThreadId  , Char * , Addr  ) ;
3260    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;   3260    void (*track_pre_mem_write)(CorePart  , ThreadId  , Char * , Addr  , SizeT  ) ;
3261    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;   3261    void (*track_post_mem_write)(CorePart  , ThreadId  , Addr  , SizeT  ) ;
3262    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,   3262    void (*track_pre_reg_read)(CorePart  , ThreadId  , Char * , PtrdiffT  ,
3263                               SizeT  ) ;   3263                               SizeT  ) ;
3264    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;   3264    void (*track_post_reg_write)(CorePart  , ThreadId  , PtrdiffT  , SizeT  ) ;
3265    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,   3265    void (*track_post_reg_write_clientcall_return)(ThreadId  , PtrdiffT  ,
3266                                                   SizeT  , Addr  ) ;   3266                                                   SizeT  , Addr  ) ;
3267    void (*track_start_client_code)(ThreadId  , ULong  ) ;   3267    void (*track_start_client_code)(ThreadId  , ULong  ) ;
3268    void (*track_stop_client_code)(ThreadId  , ULong  ) ;   3268    void (*track_stop_client_code)(ThreadId  , ULong  ) ;
3269    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;   3269    void (*track_pre_thread_ll_create)(ThreadId  , ThreadId  ) ;
3270    void (*track_pre_thread_first_insn)(ThreadId  ) ;   3270    void (*track_pre_thread_first_insn)(ThreadId  ) ;
3271    void (*track_pre_thread_ll_exit)(ThreadId  ) ;   3271    void (*track_pre_thread_ll_exit)(ThreadId  ) ;
3272    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;   3272    void (*track_pre_deliver_signal)(ThreadId  , Int sigNo , Bool  ) ;
3273    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;   3273    void (*track_post_deliver_signal)(ThreadId  , Int sigNo ) ;
3274 };   3274 };
3275 typedef struct __anonstruct_VgToolInterface_131 VgToolInterface;   3275 typedef struct __anonstruct_VgToolInterface_131 VgToolInterface;
3276 struct __anonstruct_ExeInfo_132 {   3276 struct __anonstruct_ExeInfo_132 {
3277    HChar **argv ;   3277    HChar **argv ;
3278    Addr exe_base ;   3278    Addr exe_base ;
3279    Addr exe_end ;   3279    Addr exe_end ;
3280    Addr phdr ;   3280    Addr phdr ;
3281    Int phnum ;   3281    Int phnum ;
3282    Addr interp_base ;   3282    Addr interp_base ;
3283    Addr entry ;   3283    Addr entry ;
3284    Addr init_ip ;   3284    Addr init_ip ;
3285    Addr brkbase ;   3285    Addr brkbase ;
3286    Addr init_toc ;   3286    Addr init_toc ;
3287    HChar *interp_name ;   3287    HChar *interp_name ;
3288    HChar *interp_args ;   3288    HChar *interp_args ;
3289 };   3289 };
3290 typedef struct __anonstruct_ExeInfo_132 ExeInfo;   3290 typedef struct __anonstruct_ExeInfo_132 ExeInfo;
3291 struct SyscallArgs {   3291 struct SyscallArgs {
3292    Word sysno ;   3292    Word sysno ;
3293    UWord arg1 ;   3293    UWord arg1 ;
3294    UWord arg2 ;   3294    UWord arg2 ;
3295    UWord arg3 ;   3295    UWord arg3 ;
3296    UWord arg4 ;   3296    UWord arg4 ;
3297    UWord arg5 ;   3297    UWord arg5 ;
3298    UWord arg6 ;   3298    UWord arg6 ;
3299    UWord arg7 ;   3299    UWord arg7 ;
3300    UWord arg8 ;   3300    UWord arg8 ;
3301 };   3301 };
3302 typedef struct SyscallArgs SyscallArgs;   3302 typedef struct SyscallArgs SyscallArgs;
3303 enum __anonenum_what_133 {   3303 enum __anonenum_what_133 {
3304     SsComplete = 1,   3304     SsComplete = 1,
3305     SsHandToKernel = 2,   3305     SsHandToKernel = 2,
3306     SsIdle = 3   3306     SsIdle = 3
3307 } ;   3307 } ;
3308 struct SyscallStatus {   3308 struct SyscallStatus {
3309    enum __anonenum_what_133 what ;   3309    enum __anonenum_what_133 what ;
3310    SysRes sres ;   3310    SysRes sres ;
3311 };   3311 };
3312 typedef struct SyscallStatus SyscallStatus;   3312 typedef struct SyscallStatus SyscallStatus;
3313 struct __anonstruct_SyscallArgLayout_134 {   3313 struct __anonstruct_SyscallArgLayout_134 {
3314    Int o_sysno ;   3314    Int o_sysno ;
3315    Int o_arg1 ;   3315    Int o_arg1 ;
3316    Int o_arg2 ;   3316    Int o_arg2 ;
3317    Int o_arg3 ;   3317    Int o_arg3 ;
3318    Int o_arg4 ;   3318    Int o_arg4 ;
3319    Int o_arg5 ;   3319    Int o_arg5 ;
3320    Int o_arg6 ;   3320    Int o_arg6 ;
3321    Int uu_arg7 ;   3321    Int uu_arg7 ;
3322    Int uu_arg8 ;   3322    Int uu_arg8 ;
3323 };   3323 };
3324 typedef struct __anonstruct_SyscallArgLayout_134 SyscallArgLayout;   3324 typedef struct __anonstruct_SyscallArgLayout_134 SyscallArgLayout;
3325 struct __anonstruct_SyscallTableEntry_135 {   3325 struct __anonstruct_SyscallTableEntry_135 {
3326    void (*before)(ThreadId  , SyscallArgLayout * , SyscallArgs * ,   3326    void (*before)(ThreadId  , SyscallArgLayout * , SyscallArgs * ,
3327                   SyscallStatus * , UWord * ) ;   3327                   SyscallStatus * , UWord * ) ;
3328    void (*after)(ThreadId  , SyscallArgs * , SyscallStatus * ) ;   3328    void (*after)(ThreadId  , SyscallArgs * , SyscallStatus * ) ;
3329 };   3329 };
3330 typedef struct __anonstruct_SyscallTableEntry_135 SyscallTableEntry;   3330 typedef struct __anonstruct_SyscallTableEntry_135 SyscallTableEntry;
3331 struct OpenFd {   3331 struct OpenFd {
3332    Int fd ;   3332    Int fd ;
3333    Char *pathname ;   3333    Char *pathname ;
3334    ExeContext *where ;   3334    ExeContext *where ;
3335    struct OpenFd *next ;   3335    struct OpenFd *next ;
3336    struct OpenFd *prev ;   3336    struct OpenFd *prev ;
3337 };   3337 };
3338 typedef struct OpenFd OpenFd;   3338 typedef struct OpenFd OpenFd;
3339 union u {   3339 union u {
3340    struct vki_sockaddr a ;   3340    struct vki_sockaddr a ;
3341    struct vki_sockaddr_in in ;   3341    struct vki_sockaddr_in in ;
3342    struct vki_sockaddr_un un ;   3342    struct vki_sockaddr_un un ;
3343 };   3343 };
3344 struct vki_pmsg_strbuf {   3344 struct vki_pmsg_strbuf {
3345    int maxlen ;   3345    int maxlen ;
3346    int len ;   3346    int len ;
3347    vki_caddr_t buf ;   3347    vki_caddr_t buf ;
3348 };   3348 };
3349 struct strbuf;   3349 struct strbuf;
3350 struct itimerval;   3350 struct itimerval;
3351 struct statfs;   3351 struct statfs;
3352 struct statfs64;   3352 struct statfs64;
3353 struct stat;   3353 struct stat;
3354 struct linux_dirent;   3354 struct linux_dirent;
3355 struct linux_dirent64;   3355 struct linux_dirent64;
3356 struct rlimit;   3356 struct rlimit;
3357 struct rusage;   3357 struct rusage;
3358 struct timeval;   3358 struct timeval;
3359 struct timezone;   3359 struct timezone;
3360 struct timespec;   3360 struct timespec;
3361 struct iovec;   3361 struct iovec;
3362 struct tms;   3362 struct tms;
3363 struct new_utsname;   3363 struct new_utsname;
3364 __inline static Bool toBool(Int x )   3364 __inline static Bool toBool(Int x )
3365 {   3365 {
3366   Int r ;   3366   Int r ;
3367   int tmp ;   3367   int tmp ;
3368     3368  
3369   {   3369   {
3370   if (x == 0) {   3370   if (x == 0) {
3371     tmp = (int )((Bool )0);   3371     tmp = (int )((Bool )0);
3372   } else {   3372   } else {
3373     tmp = (int )((Bool )1);   3373     tmp = (int )((Bool )1);
3374   }   3374   }
3375   r = tmp;   3375   r = tmp;
3376   return ((Bool )r);   3376   return ((Bool )r);
3377 }   3377 }
3378 }   3378 }
3379 __inline static UChar toUChar(Int x )   3379 __inline static UChar toUChar(Int x )
3380 {   3380 {
3381     3381  
3382     3382  
3383   {   3383   {
3384   x &= 255;   3384   x &= 255;
3385   return ((UChar )x);   3385   return ((UChar )x);
3386 }   3386 }
3387 }   3387 }
3388 __inline static HChar toHChar(Int x )   3388 __inline static HChar toHChar(Int x )
3389 {   3389 {
3390     3390  
3391     3391  
3392   {   3392   {
3393   x &= 255;   3393   x &= 255;
3394   return ((HChar )x);   3394   return ((HChar )x);
3395 }   3395 }
3396 }   3396 }
3397 __inline static UShort toUShort(Int x )   3397 __inline static UShort toUShort(Int x )
3398 {   3398 {
3399     3399  
3400     3400  
3401   {   3401   {
3402   x &= 65535;   3402   x &= 65535;
3403   return ((UShort )x);   3403   return ((UShort )x);
3404 }   3404 }
3405 }   3405 }
3406 __inline static Short toShort(Int x )   3406 __inline static Short toShort(Int x )
3407 {   3407 {
3408     3408  
3409     3409  
3410   {   3410   {
3411   x &= 65535;   3411   x &= 65535;
3412   return ((Short )x);   3412   return ((Short )x);
3413 }   3413 }
3414 }   3414 }
3415 __inline static UInt toUInt(Long x )   3415 __inline static UInt toUInt(Long x )
3416 {   3416 {
3417     3417  
3418     3418  
3419   {   3419   {
3420   x &= 4294967295LL;   3420   x &= 4294967295LL;
3421   return ((UInt )x);   3421   return ((UInt )x);
3422 }   3422 }
3423 }   3423 }
3424 __inline static ULong Ptr_to_ULong(void *p )   3424 __inline static ULong Ptr_to_ULong(void *p )
3425 {   3425 {
3426   UInt w ;   3426   UInt w ;
3427     3427  
3428   {   3428   {
3429   w = (UInt )p;   3429   w = (UInt )p;
3430   return ((ULong )w);   3430   return ((ULong )w);
3431 }   3431 }
3432 }   3432 }
3433 __inline static void *ULong_to_Ptr(ULong n )   3433 __inline static void *ULong_to_Ptr(ULong n )
3434 {   3434 {
3435   UInt w ;   3435   UInt w ;
3436     3436  
3437   {   3437   {
3438   w = (UInt )n;   3438   w = (UInt )n;
3439   return ((void *)w);   3439   return ((void *)w);
3440 }   3440 }
3441 }   3441 }
3442 __inline static Bool sr_isError(SysRes sr )   3442 __inline static Bool sr_isError(SysRes sr )
3443 {   3443 {
3444     3444  
3445     3445  
3446   {   3446   {
3447   return (sr._isError);   3447   return (sr._isError);
3448 }   3448 }
3449 }   3449 }
3450 __inline static UWord sr_Res(SysRes sr )   3450 __inline static UWord sr_Res(SysRes sr )
3451 {   3451 {
3452   UWord tmp ;   3452   UWord tmp ;
3453     3453  
3454   {   3454   {
3455   if (sr._isError) {   3455   if (sr._isError) {
3456     tmp = (UWord )0;   3456     tmp = (UWord )0;
3457   } else {   3457   } else {
3458     tmp = sr._val;   3458     tmp = sr._val;
3459   }   3459   }
3460   return (tmp);   3460   return (tmp);
3461 }   3461 }
3462 }   3462 }
3463 __inline static UWord sr_ResHI(SysRes sr )   3463 __inline static UWord sr_ResHI(SysRes sr )
3464 {   3464 {
3465     3465  
3466     3466  
3467   {   3467   {
3468   return ((UWord )0);   3468   return ((UWord )0);
3469 }   3469 }
3470 }   3470 }
3471 __inline static UWord sr_Err(SysRes sr )   3471 __inline static UWord sr_Err(SysRes sr )
3472 {   3472 {
3473   UWord tmp ;   3473   UWord tmp ;
3474     3474  
3475   {   3475   {
3476   if (sr._isError) {   3476   if (sr._isError) {
3477     tmp = sr._val;   3477     tmp = sr._val;
3478   } else {   3478   } else {
3479     tmp = (UWord )0;   3479     tmp = (UWord )0;
3480   }   3480   }
3481   return (tmp);   3481   return (tmp);
3482 }   3482 }
3483 }   3483 }
3484 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )   3484 __inline static Bool sr_EQ(SysRes sr1 , SysRes sr2 )
3485 {   3485 {
3486   int tmp ;   3486   int tmp ;
3487     3487  
3488   {   3488   {
3489   if (sr1._val == sr2._val) {   3489   if (sr1._val == sr2._val) {
3490     if (sr1._isError) {   3490     if (sr1._isError) {
3491       if (sr2._isError) {   3491       if (sr2._isError) {
3492         tmp = 1;   3492         tmp = 1;
3493       } else {   3493       } else {
3494         goto _L;   3494         goto _L;
3495       }   3495       }
3496     } else   3496     } else
3497     _L: /* CIL Label */   3497     _L: /* CIL Label */
3498     if (! sr1._isError) {   3498     if (! sr1._isError) {
3499       if (! sr2._isError) {   3499       if (! sr2._isError) {
3500         tmp = 1;   3500         tmp = 1;
3501       } else {   3501       } else {
3502         tmp = 0;   3502         tmp = 0;
3503       }   3503       }
3504     } else {   3504     } else {
3505       tmp = 0;   3505       tmp = 0;
3506     }   3506     }
3507   } else {   3507   } else {
3508     tmp = 0;   3508     tmp = 0;
3509   }   3509   }
3510   return ((Bool )tmp);   3510   return ((Bool )tmp);
3511 }   3511 }
3512 }   3512 }
3513 extern void ppIRType(IRType  ) ;   3513 extern void ppIRType(IRType  ) ;
3514 extern Int sizeofIRType(IRType  ) ;   3514 extern Int sizeofIRType(IRType  ) ;
3515 extern IRConst *IRConst_U1(Bool  ) ;   3515 extern IRConst *IRConst_U1(Bool  ) ;
3516 extern IRConst *IRConst_U8(UChar  ) ;   3516 extern IRConst *IRConst_U8(UChar  ) ;
3517 extern IRConst *IRConst_U16(UShort  ) ;   3517 extern IRConst *IRConst_U16(UShort  ) ;
3518 extern IRConst *IRConst_U32(UInt  ) ;   3518 extern IRConst *IRConst_U32(UInt  ) ;
3519 extern IRConst *IRConst_U64(ULong  ) ;   3519 extern IRConst *IRConst_U64(ULong  ) ;
3520 extern IRConst *IRConst_F32(Float  ) ;   3520 extern IRConst *IRConst_F32(Float  ) ;
3521 extern IRConst *IRConst_F32i(UInt  ) ;   3521 extern IRConst *IRConst_F32i(UInt  ) ;
3522 extern IRConst *IRConst_F64(Double  ) ;   3522 extern IRConst *IRConst_F64(Double  ) ;
3523 extern IRConst *IRConst_F64i(ULong  ) ;   3523 extern IRConst *IRConst_F64i(ULong  ) ;
3524 extern IRConst *IRConst_V128(UShort  ) ;   3524 extern IRConst *IRConst_V128(UShort  ) ;
3525 extern IRConst *deepCopyIRConst(IRConst * ) ;   3525 extern IRConst *deepCopyIRConst(IRConst * ) ;
3526 extern void ppIRConst(IRConst * ) ;   3526 extern void ppIRConst(IRConst * ) ;
3527 extern Bool eqIRConst(IRConst * , IRConst * ) ;   3527 extern Bool eqIRConst(IRConst * , IRConst * ) ;
3528 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;   3528 extern IRCallee *mkIRCallee(Int regparms , HChar *name , void *addr ) ;
3529 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;   3529 extern IRCallee *deepCopyIRCallee(IRCallee * ) ;
3530 extern void ppIRCallee(IRCallee * ) ;   3530 extern void ppIRCallee(IRCallee * ) ;
3531 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;   3531 extern IRRegArray *mkIRRegArray(Int  , IRType  , Int  ) ;
3532 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;   3532 extern IRRegArray *deepCopyIRRegArray(IRRegArray * ) ;
3533 extern void ppIRRegArray(IRRegArray * ) ;   3533 extern void ppIRRegArray(IRRegArray * ) ;
3534 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;   3534 extern Bool eqIRRegArray(IRRegArray * , IRRegArray * ) ;
3535 extern void ppIRTemp(IRTemp  ) ;   3535 extern void ppIRTemp(IRTemp  ) ;
3536 extern void ppIROp(IROp  ) ;   3536 extern void ppIROp(IROp  ) ;
3537 extern IRExpr *IRExpr_Binder(Int binder ) ;   3537 extern IRExpr *IRExpr_Binder(Int binder ) ;
3538 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;   3538 extern IRExpr *IRExpr_Get(Int off , IRType ty ) ;
3539 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;   3539 extern IRExpr *IRExpr_GetI(IRRegArray *descr , IRExpr *ix , Int bias ) ;
3540 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;   3540 extern IRExpr *IRExpr_RdTmp(IRTemp tmp ) ;
3541 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,   3541 extern IRExpr *IRExpr_Qop(IROp op , IRExpr *arg1 , IRExpr *arg2 , IRExpr *arg3 ,
3542                           IRExpr *arg4 ) ;   3542                           IRExpr *arg4 ) ;
3543 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,   3543 extern IRExpr *IRExpr_Triop(IROp op , IRExpr *arg1 , IRExpr *arg2 ,
3544                             IRExpr *arg3 ) ;   3544                             IRExpr *arg3 ) ;
3545 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;   3545 extern IRExpr *IRExpr_Binop(IROp op , IRExpr *arg1 , IRExpr *arg2 ) ;
3546 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;   3546 extern IRExpr *IRExpr_Unop(IROp op , IRExpr *arg ) ;
3547 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;   3547 extern IRExpr *IRExpr_Load(IREndness end , IRType ty , IRExpr *addr ) ;
3548 extern IRExpr *IRExpr_Const(IRConst *con ) ;   3548 extern IRExpr *IRExpr_Const(IRConst *con ) ;
3549 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;   3549 extern IRExpr *IRExpr_CCall(IRCallee *cee , IRType retty , IRExpr **args ) ;
3550 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;   3550 extern IRExpr *IRExpr_Mux0X(IRExpr *cond , IRExpr *expr0 , IRExpr *exprX ) ;
3551 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;   3551 extern IRExpr *deepCopyIRExpr(IRExpr * ) ;
3552 extern void ppIRExpr(IRExpr * ) ;   3552 extern void ppIRExpr(IRExpr * ) ;
3553 extern IRExpr **mkIRExprVec_0(void) ;   3553 extern IRExpr **mkIRExprVec_0(void) ;
3554 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;   3554 extern IRExpr **mkIRExprVec_1(IRExpr * ) ;
3555 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;   3555 extern IRExpr **mkIRExprVec_2(IRExpr * , IRExpr * ) ;
3556 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;   3556 extern IRExpr **mkIRExprVec_3(IRExpr * , IRExpr * , IRExpr * ) ;
3557 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3557 extern IRExpr **mkIRExprVec_4(IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3558 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3558 extern IRExpr **mkIRExprVec_5(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3559                               IRExpr * ) ;   3559                               IRExpr * ) ;
3560 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3560 extern IRExpr **mkIRExprVec_6(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3561                               IRExpr * , IRExpr * ) ;   3561                               IRExpr * , IRExpr * ) ;
3562 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3562 extern IRExpr **mkIRExprVec_7(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3563                               IRExpr * , IRExpr * , IRExpr * ) ;   3563                               IRExpr * , IRExpr * , IRExpr * ) ;
3564 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,   3564 extern IRExpr **mkIRExprVec_8(IRExpr * , IRExpr * , IRExpr * , IRExpr * ,
3565                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;   3565                               IRExpr * , IRExpr * , IRExpr * , IRExpr * ) ;
3566 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;   3566 extern IRExpr **shallowCopyIRExprVec(IRExpr ** ) ;
3567 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;   3567 extern IRExpr **deepCopyIRExprVec(IRExpr ** ) ;
3568 extern IRExpr *mkIRExpr_HWord(HWord  ) ;   3568 extern IRExpr *mkIRExpr_HWord(HWord  ) ;
3569 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,   3569 extern IRExpr *mkIRExprCCall(IRType retty , Int regparms , HChar *name ,
3570                              void *addr , IRExpr **args ) ;   3570                              void *addr , IRExpr **args ) ;
3571 __inline static Bool isIRAtom(IRExpr *e )   3571 __inline static Bool isIRAtom(IRExpr *e )
3572 {   3572 {
3573   int tmp ;   3573   int tmp ;
3574   Bool tmp___0 ;   3574   Bool tmp___0 ;
3575     3575  
3576   {   3576   {
3577   if ((unsigned int )e->tag == 86019U) {   3577   if ((unsigned int )e->tag == 86019U) {
3578     tmp = 1;   3578     tmp = 1;
3579   } else   3579   } else
3580   if ((unsigned int )e->tag == 86025U) {   3580   if ((unsigned int )e->tag == 86025U) {
3581     tmp = 1;   3581     tmp = 1;
3582   } else {   3582   } else {
3583     tmp = 0;   3583     tmp = 0;
3584   }   3584   }
3585   tmp___0 = toBool(tmp);   3585   tmp___0 = toBool(tmp);
3586   return (tmp___0);   3586   return (tmp___0);
3587 }   3587 }
3588 }   3588 }
3589 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;   3589 extern Bool eqIRAtom(IRExpr * , IRExpr * ) ;
3590 extern void ppIRJumpKind(IRJumpKind  ) ;   3590 extern void ppIRJumpKind(IRJumpKind  ) ;
3591 extern void ppIREffect(IREffect  ) ;   3591 extern void ppIREffect(IREffect  ) ;
3592 extern void ppIRDirty(IRDirty * ) ;   3592 extern void ppIRDirty(IRDirty * ) ;
3593 extern IRDirty *emptyIRDirty(void) ;   3593 extern IRDirty *emptyIRDirty(void) ;
3594 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;   3594 extern IRDirty *deepCopyIRDirty(IRDirty * ) ;
3595 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,   3595 extern IRDirty *unsafeIRDirty_0_N(Int regparms , HChar *name , void *addr ,
3596                                   IRExpr **args ) ;   3596                                   IRExpr **args ) ;
3597 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,   3597 extern IRDirty *unsafeIRDirty_1_N(IRTemp dst , Int regparms , HChar *name ,
3598                                   void *addr , IRExpr **args ) ;   3598                                   void *addr , IRExpr **args ) ;
3599 extern void ppIRMBusEvent(IRMBusEvent  ) ;   3599 extern void ppIRMBusEvent(IRMBusEvent  ) ;
3600 extern void ppIRCAS(IRCAS *cas ) ;   3600 extern void ppIRCAS(IRCAS *cas ) ;
3601 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,   3601 extern IRCAS *mkIRCAS(IRTemp oldHi , IRTemp oldLo , IREndness end ,
3602                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,   3602                       IRExpr *addr , IRExpr *expdHi , IRExpr *expdLo ,
3603                       IRExpr *dataHi , IRExpr *dataLo ) ;   3603                       IRExpr *dataHi , IRExpr *dataLo ) ;
3604 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;   3604 extern IRCAS *deepCopyIRCAS(IRCAS * ) ;
3605 extern IRStmt *IRStmt_NoOp(void) ;   3605 extern IRStmt *IRStmt_NoOp(void) ;
3606 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len , UChar delta ) ;   3606 extern IRStmt *IRStmt_IMark(Addr64 addr , Int len , UChar delta ) ;
3607 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;   3607 extern IRStmt *IRStmt_AbiHint(IRExpr *base , Int len , IRExpr *nia ) ;
3608 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;   3608 extern IRStmt *IRStmt_Put(Int off , IRExpr *data ) ;
3609 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,   3609 extern IRStmt *IRStmt_PutI(IRRegArray *descr , IRExpr *ix , Int bias ,
3610                            IRExpr *data ) ;   3610                            IRExpr *data ) ;
3611 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;   3611 extern IRStmt *IRStmt_WrTmp(IRTemp tmp , IRExpr *data ) ;
3612 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;   3612 extern IRStmt *IRStmt_Store(IREndness end , IRExpr *addr , IRExpr *data ) ;
3613 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;   3613 extern IRStmt *IRStmt_CAS(IRCAS *details ) ;
3614 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,   3614 extern IRStmt *IRStmt_LLSC(IREndness end , IRTemp result , IRExpr *addr ,
3615                            IRExpr *storedata ) ;   3615                            IRExpr *storedata ) ;
3616 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;   3616 extern IRStmt *IRStmt_Dirty(IRDirty *details ) ;
3617 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;   3617 extern IRStmt *IRStmt_MBE(IRMBusEvent event ) ;
3618 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;   3618 extern IRStmt *IRStmt_Exit(IRExpr *guard , IRJumpKind jk , IRConst *dst ) ;
3619 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;   3619 extern IRStmt *deepCopyIRStmt(IRStmt * ) ;
3620 extern void ppIRStmt(IRStmt * ) ;   3620 extern void ppIRStmt(IRStmt * ) ;
3621 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;   3621 extern IRTemp newIRTemp(IRTypeEnv * , IRType  ) ;
3622 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;   3622 extern IRTypeEnv *deepCopyIRTypeEnv(IRTypeEnv * ) ;
3623 extern void ppIRTypeEnv(IRTypeEnv * ) ;   3623 extern void ppIRTypeEnv(IRTypeEnv * ) ;
3624 extern IRSB *emptyIRSB(void) ;   3624 extern IRSB *emptyIRSB(void) ;
3625 extern IRSB *deepCopyIRSB(IRSB * ) ;   3625 extern IRSB *deepCopyIRSB(IRSB * ) ;
3626 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;   3626 extern IRSB *deepCopyIRSBExceptStmts(IRSB * ) ;
3627 extern void ppIRSB(IRSB * ) ;   3627 extern void ppIRSB(IRSB * ) ;
3628 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;   3628 extern void addStmtToIRSB(IRSB * , IRStmt * ) ;
3629 extern IRTypeEnv *emptyIRTypeEnv(void) ;   3629 extern IRTypeEnv *emptyIRTypeEnv(void) ;
3630 extern IRType typeOfIRConst(IRConst * ) ;   3630 extern IRType typeOfIRConst(IRConst * ) ;
3631 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;   3631 extern IRType typeOfIRTemp(IRTypeEnv * , IRTemp  ) ;
3632 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;   3632 extern IRType typeOfIRExpr(IRTypeEnv * , IRExpr * ) ;
3633 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,   3633 extern void sanityCheckIRSB(IRSB *bb , HChar *caller , Bool require_flatness ,
3634                             IRType guest_word_size ) ;   3634                             IRType guest_word_size ) ;
3635 extern Bool isFlatIRStmt(IRStmt * ) ;   3635 extern Bool isFlatIRStmt(IRStmt * ) ;
3636 extern Bool isPlausibleIRType(IRType ty ) ;   3636 extern Bool isPlausibleIRType(IRType ty ) ;
3637 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;   3637 extern HChar const   *LibVEX_ppVexArch(VexArch  ) ;
3638 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;   3638 extern HChar const   *LibVEX_ppVexHwCaps(VexArch  , UInt  ) ;
3639 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;   3639 extern void LibVEX_default_VexArchInfo(VexArchInfo *vai ) ;
3640 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;   3640 extern void LibVEX_default_VexAbiInfo(VexAbiInfo *vbi ) ;
3641 extern void LibVEX_default_VexControl(VexControl *vcon ) ;   3641 extern void LibVEX_default_VexControl(VexControl *vcon ) ;
3642 extern HChar *private_LibVEX_alloc_first ;   3642 extern HChar *private_LibVEX_alloc_first ;
3643 extern HChar *private_LibVEX_alloc_curr ;   3643 extern HChar *private_LibVEX_alloc_curr ;
3644 extern HChar *private_LibVEX_alloc_last ;   3644 extern HChar *private_LibVEX_alloc_last ;
3645 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;   3645 extern  __attribute__((__noreturn__)) void private_LibVEX_alloc_OOM(void) ;
3646 __inline static void *LibVEX_Alloc(Int nbytes )   3646 __inline static void *LibVEX_Alloc(Int nbytes )
3647 {   3647 {
3648   HChar *curr ;   3648   HChar *curr ;
3649   HChar *next ;   3649   HChar *next ;
3650   Int ALIGN ;   3650   Int ALIGN ;
3651     3651  
3652   {   3652   {
3653   ALIGN = (Int )((HWord )(& ((struct align *)0)->x)) - 1;   3653   ALIGN = (Int )((HWord )(& ((struct align *)0)->x)) - 1;
3654   nbytes = (nbytes + ALIGN) & ~ ALIGN;   3654   nbytes = (nbytes + ALIGN) & ~ ALIGN;
3655   curr = private_LibVEX_alloc_curr;   3655   curr = private_LibVEX_alloc_curr;
3656   next = curr + nbytes;   3656   next = curr + nbytes;
3657   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {   3657   if ((unsigned int )next >= (unsigned int )private_LibVEX_alloc_last) {
3658     private_LibVEX_alloc_OOM();   3658     private_LibVEX_alloc_OOM();
3659   } else {   3659   } else {
3660     3660  
3661   }   3661   }
3662   private_LibVEX_alloc_curr = next;   3662   private_LibVEX_alloc_curr = next;
3663   return ((void *)curr);   3663   return ((void *)curr);
3664 }   3664 }
3665 }   3665 }
3666 extern void LibVEX_ShowAllocStats(void) ;   3666 extern void LibVEX_ShowAllocStats(void) ;
3667 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,   3667 extern void LibVEX_Init( __attribute__((__noreturn__)) void (*failure_exit)(void) ,
3668                         void (*log_bytes)(HChar * , Int nbytes ) ,   3668                         void (*log_bytes)(HChar * , Int nbytes ) ,
3669                         Int debuglevel , Bool valgrind_support ,   3669                         Int debuglevel , Bool valgrind_support ,
3670                         VexControl *vcon ) ;   3670                         VexControl *vcon ) ;
3671 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;   3671 extern VexTranslateResult LibVEX_Translate(VexTranslateArgs * ) ;
3672 extern void LibVEX_ShowStats(void) ;   3672 extern void LibVEX_ShowStats(void) ;
3673 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;   3673 extern HChar *LibVEX_EmWarn_string(VexEmWarn  ) ;
3674 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;   3674 extern void LibVEX_GuestX86_initialise(VexGuestX86State *vex_state ) ;
3675 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;   3675 extern UInt LibVEX_GuestX86_get_eflags(VexGuestX86State *vex_state ) ;
3676 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,   3676 extern void LibVEX_GuestX86_put_eflag_c(UInt new_carry_flag ,
3677                                         VexGuestX86State *vex_state ) ;   3677                                         VexGuestX86State *vex_state ) ;
3678 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,   3678 __inline static struct vki_cmsghdr *__vki_cmsg_nxthdr(void *__ctl ,
3679                                                       __vki_kernel_size_t __size ,   3679                                                       __vki_kernel_size_t __size ,
3680                                                       struct vki_cmsghdr *__cmsg )   3680                                                       struct vki_cmsghdr *__cmsg )
3681 {   3681 {
3682   struct vki_cmsghdr *__ptr ;   3682   struct vki_cmsghdr *__ptr ;
3683     3683  
3684   {   3684   {
3685   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));   3685   __ptr = (struct vki_cmsghdr *)((unsigned char *)__cmsg + (((__cmsg->cmsg_len + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U)));
3686   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {   3686   if ((unsigned long )((char *)(__ptr + 1) - (char *)__ctl) > (unsigned long )__size) {
3687     return ((struct vki_cmsghdr *)0);   3687     return ((struct vki_cmsghdr *)0);
3688   } else {   3688   } else {
3689     3689  
3690   }   3690   }
3691   return (__ptr);   3691   return (__ptr);
3692 }   3692 }
3693 }   3693 }
3694 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,   3694 __inline static struct vki_cmsghdr *vki_cmsg_nxthdr(struct vki_msghdr *__msg ,
3695                                                     struct vki_cmsghdr *__cmsg )   3695                                                     struct vki_cmsghdr *__cmsg )
3696 {   3696 {
3697   struct vki_cmsghdr *tmp ;   3697   struct vki_cmsghdr *tmp ;
3698     3698  
3699   {   3699   {
3700   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);   3700   tmp = __vki_cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
3701   return (tmp);   3701   return (tmp);
3702 }   3702 }
3703 }   3703 }
3704 extern void vgPlain_vki_do_initial_consistency_checks(void) ;   3704 extern void vgPlain_vki_do_initial_consistency_checks(void) ;
3705 extern Char *vgPlain_sysnum_string(Word sysnum , SizeT n_buf , Char *buf ) ;   3705 extern Char *vgPlain_sysnum_string(Word sysnum , SizeT n_buf , Char *buf ) ;
3706 extern Char *vgPlain_sysnum_string_extra(Word sysnum , SizeT n_buf , Char *buf ) ;   3706 extern Char *vgPlain_sysnum_string_extra(Word sysnum , SizeT n_buf , Char *buf ) ;
3707 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;   3707 extern  __attribute__((__nothrow__)) int setjmp(struct __jmp_buf_tag *__env ) ;
3708 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,   3708 extern  __attribute__((__nothrow__)) int __sigsetjmp(struct __jmp_buf_tag *__env ,
3709                                                      int __savemask ) ;   3709                                                      int __savemask ) ;
3710 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;   3710 extern  __attribute__((__nothrow__)) int _setjmp(struct __jmp_buf_tag *__env ) ;
3711 extern  __attribute__((__nothrow__,   3711 extern  __attribute__((__nothrow__,
3712 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;   3712 __noreturn__)) void longjmp(struct __jmp_buf_tag *__env , int __val ) ;
3713 extern  __attribute__((__nothrow__,   3713 extern  __attribute__((__nothrow__,
3714 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;   3714 __noreturn__)) void _longjmp(struct __jmp_buf_tag *__env , int __val ) ;
3715 extern  __attribute__((__nothrow__,   3715 extern  __attribute__((__nothrow__,
3716 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;   3716 __noreturn__)) void siglongjmp(struct __jmp_buf_tag *__env , int __val ) ;
3717 extern UWord __attribute__((__returns_twice__))  ( __attribute__((__regparm__(1))) VG_MINIMAL_SETJMP)(UInt *_env ) ;   3717 extern UWord __attribute__((__returns_twice__))  ( __attribute__((__regparm__(1))) VG_MINIMAL_SETJMP)(UInt *_env ) ;
3718 extern  __attribute__((__noreturn__)) void ( __attribute__((__regparm__(1))) VG_MINIMAL_LONGJMP)(UInt *_env ) ;   3718 extern  __attribute__((__noreturn__)) void ( __attribute__((__regparm__(1))) VG_MINIMAL_LONGJMP)(UInt *_env ) ;
3719 extern ThreadId vgPlain_get_running_tid(void) ;   3719 extern ThreadId vgPlain_get_running_tid(void) ;
3720 extern ThreadState vgPlain_threads[500] ;   3720 extern ThreadState vgPlain_threads[500] ;
3721 extern ThreadId vgPlain_running_tid ;   3721 extern ThreadId vgPlain_running_tid ;
3722 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;   3722 extern HChar const   *vgPlain_name_of_ThreadStatus(ThreadStatus status ) ;
3723 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;   3723 extern ThreadState *vgPlain_get_ThreadState(ThreadId tid ) ;
3724 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;   3724 extern Bool vgPlain_is_valid_tid(ThreadId tid ) ;
3725 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;   3725 extern Bool vgPlain_is_running_thread(ThreadId tid ) ;
3726 extern Bool vgPlain_is_exiting(ThreadId tid ) ;   3726 extern Bool vgPlain_is_exiting(ThreadId tid ) ;
3727 extern Int vgPlain_count_living_threads(void) ;   3727 extern Int vgPlain_count_living_threads(void) ;
3728 extern Int vgPlain_count_runnable_threads(void) ;   3728 extern Int vgPlain_count_runnable_threads(void) ;
3729 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;   3729 extern ThreadId vgPlain_lwpid_to_vgtid(Int lwpid ) ;
3730 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;   3730 extern Bool vgPlain_get_filename(Addr a , Char *filename , Int n_filename ) ;
3731 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;   3731 extern Bool vgPlain_get_fnname(Addr a , Char *fnname , Int n_fnname ) ;
3732 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;   3732 extern Bool vgPlain_get_linenum(Addr a , UInt *linenum ) ;
3733 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;   3733 extern Bool vgPlain_get_fnname_w_offset(Addr a , Char *fnname , Int n_fnname ) ;
3734 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,   3734 extern Bool vgPlain_get_filename_linenum(Addr a , Char *filename ,
3735                                          Int n_filename , Char *dirname ,   3735                                          Int n_filename , Char *dirname ,
3736                                          Int n_dirname ,   3736                                          Int n_dirname ,
3737                                          Bool *dirname_available ,   3737                                          Bool *dirname_available ,
3738                                          UInt *linenum ) ;   3738                                          UInt *linenum ) ;
3739 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;   3739 extern Bool vgPlain_get_fnname_if_entry(Addr a , Char *fnname , Int n_fnname ) ;
3740 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;   3740 extern Vg_FnNameKind vgPlain_get_fnname_kind(Char *name ) ;
3741 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;   3741 extern Vg_FnNameKind vgPlain_get_fnname_kind_from_IP(Addr ip ) ;
3742 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,   3742 extern Bool vgPlain_get_datasym_and_offset(Addr data_addr , Char *dname ,
3743                                            Int n_dname , PtrdiffT *offset ) ;   3743                                            Int n_dname , PtrdiffT *offset ) ;
3744 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,   3744 extern Bool vgPlain_get_data_description(void *dname1v , void *dname2v ,
3745                                          Addr data_addr ) ;   3745                                          Addr data_addr ) ;
3746 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;   3746 extern Bool vgPlain_get_objname(Addr a , Char *objname , Int n_objname ) ;
3747 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;   3747 extern Char *vgPlain_describe_IP(Addr eip , Char *buf , Int n_buf ) ;
3748 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;   3748 extern void *vgPlain_di_get_stack_blocks_at_ip(Addr ip , Bool arrays_only ) ;
3749 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,   3749 extern void *vgPlain_di_get_global_blocks_from_dihandle(ULong di_handle ,
3750                                                         Bool arrays_only ) ;   3750                                                         Bool arrays_only ) ;
3751 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;   3751 extern DebugInfo *vgPlain_find_DebugInfo(Addr a ) ;
3752 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;   3752 extern Addr vgPlain_DebugInfo_get_text_avma(DebugInfo const   *di ) ;
3753 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;   3753 extern SizeT vgPlain_DebugInfo_get_text_size(DebugInfo const   *di ) ;
3754 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;   3754 extern Addr vgPlain_DebugInfo_get_plt_avma(DebugInfo const   *di ) ;
3755 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;   3755 extern SizeT vgPlain_DebugInfo_get_plt_size(DebugInfo const   *di ) ;
3756 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;   3756 extern Addr vgPlain_DebugInfo_get_gotplt_avma(DebugInfo const   *di ) ;
3757 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;   3757 extern SizeT vgPlain_DebugInfo_get_gotplt_size(DebugInfo const   *di ) ;
3758 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;   3758 extern UChar const   *vgPlain_DebugInfo_get_soname(DebugInfo const   *di ) ;
3759 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;   3759 extern UChar const   *vgPlain_DebugInfo_get_filename(DebugInfo const   *di ) ;
3760 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;   3760 extern PtrdiffT vgPlain_DebugInfo_get_text_bias(DebugInfo const   *di ) ;
3761 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;   3761 extern DebugInfo const   *vgPlain_next_DebugInfo(DebugInfo const   *di ) ;
3762 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;   3762 extern Int vgPlain_DebugInfo_syms_howmany(DebugInfo const   *di ) ;
3763 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,   3763 extern void vgPlain_DebugInfo_syms_getidx(DebugInfo const   *di , Int idx ,
3764                                           Addr *avma , Addr *tocptr ,   3764                                           Addr *avma , Addr *tocptr ,
3765                                           UInt *size , UChar **pri_name ,   3765                                           UInt *size , UChar **pri_name ,
3766                                           UChar ***sec_names , Bool *isText ,   3766                                           UChar ***sec_names , Bool *isText ,
3767                                           Bool *isIFunc ) ;   3767                                           Bool *isIFunc ) ;
3768 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;   3768 extern HChar const   *vgPlain_pp_SectKind(VgSectKind kind ) ;
3769 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,   3769 extern VgSectKind vgPlain_DebugInfo_sect_kind(UChar *name , SizeT n_name ,
3770                                               Addr a ) ;   3770                                               Addr a ) ;
3771 extern void vgPlain_di_initialise(void) ;   3771 extern void vgPlain_di_initialise(void) ;
3772 extern ULong vgPlain_di_notify_mmap(Addr a , Bool allow_SkFileV , Int use_fd ) ;   3772 extern ULong vgPlain_di_notify_mmap(Addr a , Bool allow_SkFileV , Int use_fd ) ;
3773 extern void vgPlain_di_notify_munmap(Addr a , SizeT len ) ;   3773 extern void vgPlain_di_notify_munmap(Addr a , SizeT len ) ;
3774 extern void vgPlain_di_notify_mprotect(Addr a , SizeT len , UInt prot ) ;   3774 extern void vgPlain_di_notify_mprotect(Addr a , SizeT len , UInt prot ) ;
3775 extern void vgPlain_di_notify_pdb_debuginfo(Int fd , Addr avma ,   3775 extern void vgPlain_di_notify_pdb_debuginfo(Int fd , Addr avma ,
3776                                             SizeT total_size ,   3776                                             SizeT total_size ,
3777                                             PtrdiffT unknown_purpose__reloc ) ;   3777                                             PtrdiffT unknown_purpose__reloc ) ;
3778 extern void vgPlain_di_notify_vm_protect(Addr a , SizeT len , UInt prot ) ;   3778 extern void vgPlain_di_notify_vm_protect(Addr a , SizeT len , UInt prot ) ;
3779 extern void vgPlain_di_discard_ALL_debuginfo(void) ;   3779 extern void vgPlain_di_discard_ALL_debuginfo(void) ;
3780 extern Bool vgPlain_get_fnname_raw(Addr a , Char *buf , Int nbuf ) ;   3780 extern Bool vgPlain_get_fnname_raw(Addr a , Char *buf , Int nbuf ) ;
3781 extern Bool vgPlain_get_fnname_no_cxx_demangle(Addr a , Char *buf , Int nbuf ) ;   3781 extern Bool vgPlain_get_fnname_no_cxx_demangle(Addr a , Char *buf , Int nbuf ) ;
3782 extern Bool vgPlain_use_CF_info(D3UnwindRegs *uregs , Addr min_accessible ,   3782 extern Bool vgPlain_use_CF_info(D3UnwindRegs *uregs , Addr min_accessible ,
3783                                 Addr max_accessible ) ;   3783                                 Addr max_accessible ) ;
3784 extern Bool vgPlain_use_FPO_info(Addr *ipP , Addr *spP , Addr *fpP ,   3784 extern Bool vgPlain_use_FPO_info(Addr *ipP , Addr *spP , Addr *fpP ,
3785                                  Addr min_accessible , Addr max_accessible ) ;   3785                                  Addr min_accessible , Addr max_accessible ) ;
3786 extern Addr vgPlain_get_tocptr(Addr guest_code_addr ) ;   3786 extern Addr vgPlain_get_tocptr(Addr guest_code_addr ) ;
3787 extern Bool vgPlain_lookup_symbol_SLOW(UChar *sopatt , UChar *name ,   3787 extern Bool vgPlain_lookup_symbol_SLOW(UChar *sopatt , UChar *name ,
3788                                        Addr *pEnt , Addr *pToc ) ;   3788                                        Addr *pEnt , Addr *pToc ) ;
3789 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;   3789 extern Int vgPlain_am_get_segment_starts(Addr *starts , Int nStarts ) ;
3790 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;   3790 extern NSegment const   *vgPlain_am_find_nsegment(Addr a ) ;
3791 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;   3791 extern HChar *vgPlain_am_get_filename(NSegment const   * ) ;
3792 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;   3792 extern Bool vgPlain_am_is_valid_for_client(Addr start , SizeT len , UInt prot ) ;
3793 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;   3793 extern void *vgPlain_am_shadow_alloc(SizeT size ) ;
3794 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;   3794 extern SysRes vgPlain_am_munmap_valgrind(Addr start , SizeT length ) ;
3795 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;   3795 extern Addr vgPlain_am_startup(Addr sp_at_startup ) ;
3796 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;   3796 extern NSegment const   *vgPlain_am_next_nsegment(NSegment *here , Bool fwds ) ;
3797 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,   3797 extern Bool vgPlain_am_is_valid_for_client_or_free_or_resvn(Addr start ,
3798                                                             SizeT len ,   3798                                                             SizeT len ,
3799                                                             UInt prot ) ;   3799                                                             UInt prot ) ;
3800 extern ULong vgPlain_am_get_anonsize_total(void) ;   3800 extern ULong vgPlain_am_get_anonsize_total(void) ;
3801 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;   3801 extern void vgPlain_am_show_nsegments(Int logLevel , HChar *who ) ;
3802 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,   3802 extern Bool vgPlain_am_do_sync_check(HChar const   *fn , HChar const   *file ,
3803                                      Int line ) ;   3803                                      Int line ) ;
3804 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;   3804 extern Addr vgPlain_am_get_advisory(MapRequest *req , Bool forClient , Bool *ok ) ;
3805 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,   3805 extern Addr vgPlain_am_get_advisory_client_simple(Addr start , SizeT len ,
3806                                                   Bool *ok ) ;   3806                                                   Bool *ok ) ;
3807 extern Bool vgPlain_am_covered_by_single_free_segment(Addr start , SizeT len ) ;   3807 extern Bool vgPlain_am_covered_by_single_free_segment(Addr start , SizeT len ) ;
3808 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,   3808 extern Bool vgPlain_am_notify_client_mmap(Addr a , SizeT len , UInt prot ,
3809                                           UInt flags , Int fd , Off64T offset ) ;   3809                                           UInt flags , Int fd , Off64T offset ) ;
3810 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;   3810 extern Bool vgPlain_am_notify_client_shmat(Addr a , SizeT len , UInt prot ) ;
3811 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;   3811 extern Bool vgPlain_am_notify_mprotect(Addr start , SizeT len , UInt prot ) ;
3812 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;   3812 extern Bool vgPlain_am_notify_munmap(Addr start , SizeT len ) ;
3813 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,   3813 extern SysRes vgPlain_am_do_mmap_NO_NOTIFY(Addr start , SizeT length ,
3814                                            UInt prot , UInt flags , Int fd ,   3814                                            UInt prot , UInt flags , Int fd ,
3815                                            Off64T offset ) ;   3815                                            Off64T offset ) ;
3816 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,   3816 extern SysRes vgPlain_am_mmap_file_fixed_client(Addr start , SizeT length ,
3817                                                 UInt prot , Int fd ,   3817                                                 UInt prot , Int fd ,
3818                                                 Off64T offset ) ;   3818                                                 Off64T offset ) ;
3819 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,   3819 extern SysRes vgPlain_am_mmap_named_file_fixed_client(Addr start ,
3820                                                       SizeT length , UInt prot ,   3820                                                       SizeT length , UInt prot ,
3821                                                       Int fd , Off64T offset ,   3821                                                       Int fd , Off64T offset ,
3822                                                       HChar const   *name ) ;   3822                                                       HChar const   *name ) ;
3823 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,   3823 extern SysRes vgPlain_am_mmap_anon_fixed_client(Addr start , SizeT length ,
3824                                                 UInt prot ) ;   3824                                                 UInt prot ) ;
3825 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;   3825 extern SysRes vgPlain_am_mmap_anon_float_client(SizeT length , Int prot ) ;
3826 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;   3826 extern SysRes vgPlain_am_sbrk_anon_float_client(SizeT length , Int prot ) ;
3827 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;   3827 extern SysRes vgPlain_am_mmap_anon_float_valgrind(SizeT cszB ) ;
3828 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;   3828 extern SysRes vgPlain_am_sbrk_anon_float_valgrind(SizeT cszB ) ;
3829 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,   3829 extern SysRes vgPlain_am_mmap_file_float_valgrind(SizeT length , UInt prot ,
3830                                                   Int fd , Off64T offset ) ;   3830                                                   Int fd , Off64T offset ) ;
3831 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,   3831 extern SysRes vgPlain_am_shared_mmap_file_float_valgrind(SizeT length ,
3832                                                          UInt prot , Int fd ,   3832                                                          UInt prot , Int fd ,
3833                                                          Off64T offset ) ;   3833                                                          Off64T offset ) ;
3834 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,   3834 extern SysRes vgPlain_am_munmap_client(Bool *need_discard , Addr start ,
3835                                        SizeT length ) ;   3835                                        SizeT length ) ;
3836 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;   3836 extern Bool vgPlain_am_change_ownership_v_to_c(Addr start , SizeT len ) ;
3837 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;   3837 extern void vgPlain_am_set_segment_isCH_if_SkAnonC(NSegment *seg ) ;
3838 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;   3838 extern void vgPlain_am_set_segment_hasT_if_SkFileC_or_SkAnonC(NSegment * ) ;
3839 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,   3839 extern Bool vgPlain_am_create_reservation(Addr start , SizeT length ,
3840                                           ShrinkMode smode , SSizeT extra ) ;   3840                                           ShrinkMode smode , SSizeT extra ) ;
3841 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,   3841 extern Bool vgPlain_am_extend_into_adjacent_reservation_client(NSegment *seg ,
3842                                                                SSizeT delta ) ;   3842                                                                SSizeT delta ) ;
3843 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,   3843 extern Bool vgPlain_am_extend_map_client(Bool *need_discard , NSegment *seg ,
3844                                          SizeT delta ) ;   3844                                          SizeT delta ) ;
3845 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,   3845 extern Bool vgPlain_am_relocate_nooverlap_client(Bool *need_discard ,
3846                                                  Addr old_addr , SizeT old_len ,   3846                                                  Addr old_addr , SizeT old_len ,
3847                                                  Addr new_addr , SizeT new_len ) ;   3847                                                  Addr new_addr , SizeT new_len ) ;
3848 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;   3848 extern VgStack *vgPlain_am_alloc_VgStack(Addr *initial_sp ) ;
3849 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;   3849 extern SizeT vgPlain_am_get_VgStack_unused_szB(VgStack *stack , SizeT limit ) ;
3850 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;   3850 extern FastCacheEntry __attribute__((__aligned__(16)))  vgPlain_tt_fast[1 << 15] ;
3851 extern UInt *vgPlain_tt_fastN[1 << 15] ;   3851 extern UInt *vgPlain_tt_fastN[1 << 15] ;
3852 extern void vgPlain_init_tt_tc(void) ;   3852 extern void vgPlain_init_tt_tc(void) ;
3853 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,   3853 extern void vgPlain_add_to_transtab(VexGuestExtents *vge , Addr64 entry ,
3854                                     AddrH code , UInt code_len ,   3854                                     AddrH code , UInt code_len ,
3855                                     Bool is_self_checking ) ;   3855                                     Bool is_self_checking ) ;
3856 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,   3856 extern Bool vgPlain_search_transtab(AddrH *result , Addr64 guest_addr ,
3857                                     Bool upd_cache ) ;   3857                                     Bool upd_cache ) ;
3858 extern void vgPlain_discard_translations(Addr64 start , ULong range ,   3858 extern void vgPlain_discard_translations(Addr64 start , ULong range ,
3859                                          HChar *who ) ;   3859                                          HChar *who ) ;
3860 extern void vgPlain_print_tt_tc_stats(void) ;   3860 extern void vgPlain_print_tt_tc_stats(void) ;
3861 extern UInt vgPlain_get_bbs_translated(void) ;   3861 extern UInt vgPlain_get_bbs_translated(void) ;
3862 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,   3862 extern void vgPlain_add_to_unredir_transtab(VexGuestExtents *vge ,
3863                                             Addr64 entry , AddrH code ,   3863                                             Addr64 entry , AddrH code ,
3864                                             UInt code_len ) ;   3864                                             UInt code_len ) ;
3865 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;   3865 extern Bool vgPlain_search_unredir_transtab(AddrH *result , Addr64 guest_addr ) ;
3866 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;   3866 extern ULong vgPlain_get_BB_profile(BBProfEntry *tops , UInt n_tops ) ;
3867 extern XArray *vgPlain_newXA(void *(*alloc_fn)(HChar * , SizeT  ) , HChar *cc ,   3867 extern XArray *vgPlain_newXA(void *(*alloc_fn)(HChar * , SizeT  ) , HChar *cc ,
3868                              void (*free_fn)(void * ) , Word elemSzB ) ;   3868                              void (*free_fn)(void * ) , Word elemSzB ) ;
3869 extern void vgPlain_deleteXA(XArray * ) ;   3869 extern void vgPlain_deleteXA(XArray * ) ;
3870 extern void vgPlain_setCmpFnXA(XArray * , Int (*compar)(void * , void * ) ) ;   3870 extern void vgPlain_setCmpFnXA(XArray * , Int (*compar)(void * , void * ) ) ;
3871 extern Word vgPlain_addToXA(XArray * , void *elem ) ;   3871 extern Word vgPlain_addToXA(XArray * , void *elem ) ;
3872 extern Word vgPlain_addBytesToXA(XArray *xao , void *bytesV , Word nbytes ) ;   3872 extern Word vgPlain_addBytesToXA(XArray *xao , void *bytesV , Word nbytes ) ;
3873 extern void vgPlain_sortXA(XArray * ) ;   3873 extern void vgPlain_sortXA(XArray * ) ;
3874 extern Bool vgPlain_lookupXA(XArray * , void *key , Word *first , Word *last ) ;   3874 extern Bool vgPlain_lookupXA(XArray * , void *key , Word *first , Word *last ) ;
3875 extern Bool vgPlain_lookupXA_UNSAFE(XArray *xao , void *key , Word *first ,   3875 extern Bool vgPlain_lookupXA_UNSAFE(XArray *xao , void *key , Word *first ,
3876                                     Word *last , Int (*cmpFn)(void * , void * ) ) ;   3876                                     Word *last , Int (*cmpFn)(void * , void * ) ) ;
3877 extern Word vgPlain_sizeXA(XArray * ) ;   3877 extern Word vgPlain_sizeXA(XArray * ) ;
3878 extern void *vgPlain_indexXA(XArray * , Word  ) ;   3878 extern void *vgPlain_indexXA(XArray * , Word  ) ;
3879 extern void vgPlain_dropTailXA(XArray * , Word  ) ;   3879 extern void vgPlain_dropTailXA(XArray * , Word  ) ;
3880 extern void vgPlain_dropHeadXA(XArray * , Word  ) ;   3880 extern void vgPlain_dropHeadXA(XArray * , Word  ) ;
3881 extern XArray *vgPlain_cloneXA(HChar *cc , XArray *xa ) ;   3881 extern XArray *vgPlain_cloneXA(HChar *cc , XArray *xa ) ;
3882 extern void vgPlain_getContentsXA_UNSAFE(XArray *sr , void **ctsP , Word *usedP ) ;   3882 extern void vgPlain_getContentsXA_UNSAFE(XArray *sr , void **ctsP , Word *usedP ) ;
3883 extern void ( /* format attribute */  vgPlain_xaprintf)(XArray *dst ,   3883 extern void ( /* format attribute */  vgPlain_xaprintf)(XArray *dst ,
3884                                                         HChar const   *format   3884                                                         HChar const   *format
3885                                                         , ...) ;   3885                                                         , ...) ;
3886 extern XArray *vgPlain_args_for_client ;   3886 extern XArray *vgPlain_args_for_client ;
3887 extern XArray *vgPlain_args_for_valgrind ;   3887 extern XArray *vgPlain_args_for_valgrind ;
3888 extern Int vgPlain_args_for_valgrind_noexecpass ;   3888 extern Int vgPlain_args_for_valgrind_noexecpass ;
3889 extern HChar const   *vgPlain_args_the_exename ;   3889 extern HChar const   *vgPlain_args_the_exename ;
3890 extern Addr vgPlain_clstk_base ;   3890 extern Addr vgPlain_clstk_base ;
3891 extern Addr vgPlain_clstk_end ;   3891 extern Addr vgPlain_clstk_end ;
3892 extern UWord vgPlain_clstk_id ;   3892 extern UWord vgPlain_clstk_id ;
3893 extern UWord *vgPlain_client_auxv ;   3893 extern UWord *vgPlain_client_auxv ;
3894 extern Addr vgPlain_brk_base ;   3894 extern Addr vgPlain_brk_base ;
3895 extern Addr vgPlain_brk_limit ;   3895 extern Addr vgPlain_brk_limit ;
3896 extern Int vgPlain_cl_exec_fd ;   3896 extern Int vgPlain_cl_exec_fd ;
3897 extern Int vgPlain_cl_cmdline_fd ;   3897 extern Int vgPlain_cl_cmdline_fd ;
3898 extern struct vki_rlimit vgPlain_client_rlimit_data ;   3898 extern struct vki_rlimit vgPlain_client_rlimit_data ;
3899 extern struct vki_rlimit vgPlain_client_rlimit_stack ;   3899 extern struct vki_rlimit vgPlain_client_rlimit_stack ;
3900 extern HChar *vgPlain_name_of_launcher ;   3900 extern HChar *vgPlain_name_of_launcher ;
3901 extern Int vgPlain_fd_soft_limit ;   3901 extern Int vgPlain_fd_soft_limit ;
3902 extern Int vgPlain_fd_hard_limit ;   3902 extern Int vgPlain_fd_hard_limit ;
3903 extern Addr vgPlain_client___libc_freeres_wrapper ;   3903 extern Addr vgPlain_client___libc_freeres_wrapper ;
3904 extern Addr vgPlain_client__dl_sysinfo_int80 ;   3904 extern Addr vgPlain_client__dl_sysinfo_int80 ;
3905 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;   3905 extern void vgPlain_debugLog_startup(Int level , HChar *who ) ;
3906 extern void vgPlain_debugLog_setXml(Bool xml ) ;   3906 extern void vgPlain_debugLog_setXml(Bool xml ) ;
3907 extern Int vgPlain_debugLog_getLevel(void) ;   3907 extern Int vgPlain_debugLog_getLevel(void) ;
3908 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,   3908 extern void ( /* format attribute */  vgPlain_debugLog)(Int level ,
3909                                                         HChar const   *modulename ,   3909                                                         HChar const   *modulename ,
3910                                                         HChar const   *format   3910                                                         HChar const   *format
3911                                                         , ...) ;   3911                                                         , ...) ;
3912 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,   3912 extern UInt vgPlain_debugLog_vprintf(void (*send_fn)(HChar  , void * ) ,
3913                                      void *send_arg2 , HChar const   *format ,   3913                                      void *send_arg2 , HChar const   *format ,
3914                                      va_list vargs ) ;   3914                                      va_list vargs ) ;
3915 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;   3915 extern ExeContext *vgPlain_record_ExeContext(ThreadId tid , Word first_ip_delta ) ;
3916 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;   3916 extern ExeContext *vgPlain_record_depth_1_ExeContext(ThreadId tid ) ;
3917 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,   3917 extern void vgPlain_apply_ExeContext(void (*action)(UInt n , Addr ip ) ,
3918                                      ExeContext *ec , UInt n_ips ) ;   3918                                      ExeContext *ec , UInt n_ips ) ;
3919 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;   3919 extern Bool vgPlain_eq_ExeContext(VgRes res , ExeContext *e1 , ExeContext *e2 ) ;
3920 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;   3920 extern void vgPlain_pp_ExeContext(ExeContext *ec ) ;
3921 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;   3921 extern UInt vgPlain_get_ECU_from_ExeContext(ExeContext *e ) ;
3922 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;   3922 extern Int vgPlain_get_ExeContext_n_ips(ExeContext *e ) ;
3923 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;   3923 extern ExeContext *vgPlain_get_ExeContext_from_ECU(UInt uniq ) ;
3924 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;   3924 extern ExeContext *vgPlain_make_depth_1_ExeContext_from_Addr(Addr a ) ;
3925 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )   3925 __inline static Bool vgPlain_is_plausible_ECU(UInt ecu )
3926 {   3926 {
3927   int tmp ;   3927   int tmp ;
3928     3928  
3929   {   3929   {
3930   if (ecu > 0U) {   3930   if (ecu > 0U) {
3931     if ((ecu & 3U) == 0U) {   3931     if ((ecu & 3U) == 0U) {
3932       tmp = 1;   3932       tmp = 1;
3933     } else {   3933     } else {
3934       tmp = 0;   3934       tmp = 0;
3935     }   3935     }
3936   } else {   3936   } else {
3937     tmp = 0;   3937     tmp = 0;
3938   }   3938   }
3939   return ((Bool )tmp);   3939   return ((Bool )tmp);
3940 }   3940 }
3941 }   3941 }
3942 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,   3942 extern ExeContext *vgPlain_make_ExeContext_from_StackTrace(Addr *ips ,
3943                                                            UInt n_ips ) ;   3943                                                            UInt n_ips ) ;
3944 extern ExeContext *vgPlain_get_error_where(Error *err ) ;   3944 extern ExeContext *vgPlain_get_error_where(Error *err ) ;
3945 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;   3945 extern ErrorKind vgPlain_get_error_kind(Error *err ) ;
3946 extern Addr vgPlain_get_error_address(Error *err ) ;   3946 extern Addr vgPlain_get_error_address(Error *err ) ;
3947 extern Char *vgPlain_get_error_string(Error *err ) ;   3947 extern Char *vgPlain_get_error_string(Error *err ) ;
3948 extern void *vgPlain_get_error_extra(Error *err ) ;   3948 extern void *vgPlain_get_error_extra(Error *err ) ;
3949 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,   3949 extern void vgPlain_maybe_record_error(ThreadId tid , ErrorKind ekind , Addr a ,
3950                                        Char *s , void *extra ) ;   3950                                        Char *s , void *extra ) ;
3951 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,   3951 extern Bool vgPlain_unique_error(ThreadId tid , ErrorKind ekind , Addr a ,
3952                                  Char *s , void *extra , ExeContext *where ,   3952                                  Char *s , void *extra , ExeContext *where ,
3953                                  Bool print_error , Bool allow_GDB_attach ,   3953                                  Bool print_error , Bool allow_GDB_attach ,
3954                                  Bool count_error ) ;   3954                                  Bool count_error ) ;
3955 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;   3955 extern Bool vgPlain_get_line(Int fd , Char **bufpp , SizeT *nBufp , Int *lineno ) ;
3956 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;   3956 extern SuppKind vgPlain_get_supp_kind(Supp *su ) ;
3957 extern Char *vgPlain_get_supp_string(Supp *su ) ;   3957 extern Char *vgPlain_get_supp_string(Supp *su ) ;
3958 extern void *vgPlain_get_supp_extra(Supp *su ) ;   3958 extern void *vgPlain_get_supp_extra(Supp *su ) ;
3959 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;   3959 extern void vgPlain_set_supp_kind(Supp *su , SuppKind suppkind ) ;
3960 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;   3960 extern void vgPlain_set_supp_string(Supp *su , Char *string ) ;
3961 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;   3961 extern void vgPlain_set_supp_extra(Supp *su , void *extra ) ;
3962 extern void vgPlain_load_suppressions(void) ;   3962 extern void vgPlain_load_suppressions(void) ;
3963 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;   3963 extern void vgPlain_show_all_errors(Int verbosity , Bool xml ) ;
3964 extern void vgPlain_show_last_error(void) ;   3964 extern void vgPlain_show_last_error(void) ;
3965 extern void vgPlain_show_error_counts_as_XML(void) ;   3965 extern void vgPlain_show_error_counts_as_XML(void) ;
3966 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;   3966 extern Bool vgPlain_is_action_requested(Char *action , Bool *clo ) ;
3967 extern Bool vgPlain_showing_core_errors(void) ;   3967 extern Bool vgPlain_showing_core_errors(void) ;
3968 extern UInt vgPlain_get_n_errs_found(void) ;   3968 extern UInt vgPlain_get_n_errs_found(void) ;
3969 extern UInt vgPlain_get_n_errs_shown(void) ;   3969 extern UInt vgPlain_get_n_errs_shown(void) ;
3970 extern void vgPlain_print_errormgr_stats(void) ;   3970 extern void vgPlain_print_errormgr_stats(void) ;
3971 extern void vgPlain_gdbserver(ThreadId tid ) ;   3971 extern void vgPlain_gdbserver(ThreadId tid ) ;
3972 extern Int vgPlain_dyn_vgdb_error ;   3972 extern Int vgPlain_dyn_vgdb_error ;
3973 extern char *vgPlain_ppPointKind(PointKind kind ) ;   3973 extern char *vgPlain_ppPointKind(PointKind kind ) ;
3974 extern Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;   3974 extern Bool vgPlain_is_watched(PointKind kind , Addr addr , Int szB ) ;
3975 extern void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind ,   3975 extern void vgPlain_needs_watchpoint(Bool (*watchpoint)(PointKind kind ,
3976                                                         Bool insert ,   3976                                                         Bool insert ,
3977                                                         Addr addr , SizeT len ) ) ;   3977                                                         Addr addr , SizeT len ) ) ;
3978 extern UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format   3978 extern UInt ( /* format attribute */  vgPlain_gdb_printf)(HChar const   *format
3979                                                           , ...) ;   3979                                                           , ...) ;
3980 extern Int vgPlain_keyword_id(Char *keywords , Char *input_word ,   3980 extern Int vgPlain_keyword_id(Char *keywords , Char *input_word ,
3981                               kwd_report_error report ) ;   3981                               kwd_report_error report ) ;
3982 extern void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,   3982 extern void vgPlain_strtok_get_address_and_size(Addr *address , SizeT *szB ,
3983                                                 Char **ssaveptr ) ;   3983                                                 Char **ssaveptr ) ;
3984 extern Bool vgPlain_isspace(Char c ) ;   3984 extern Bool vgPlain_isspace(Char c ) ;
3985 extern Bool vgPlain_isdigit(Char c ) ;   3985 extern Bool vgPlain_isdigit(Char c ) ;
3986 extern Char vgPlain_tolower(Char c ) ;   3986 extern Char vgPlain_tolower(Char c ) ;
3987 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;   3987 extern Long vgPlain_strtoll10(Char *str , Char **endptr ) ;
3988 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;   3988 extern Long vgPlain_strtoll16(Char *str , Char **endptr ) ;
3989 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;   3989 extern ULong vgPlain_strtoull10(Char *str , Char **endptr ) ;
3990 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;   3990 extern ULong vgPlain_strtoull16(Char *str , Char **endptr ) ;
3991 extern double vgPlain_strtod(Char *str , Char **endptr ) ;   3991 extern double vgPlain_strtod(Char *str , Char **endptr ) ;
3992 extern SizeT vgPlain_strlen(Char const   *str ) ;   3992 extern SizeT vgPlain_strlen(Char const   *str ) ;
3993 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;   3993 extern Char *vgPlain_strcat(Char *dest , Char const   *src ) ;
3994 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;   3994 extern Char *vgPlain_strncat(Char *dest , Char const   *src , SizeT n ) ;
3995 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;   3995 extern Char *vgPlain_strpbrk(Char const   *s , Char const   *accpt ) ;
3996 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;   3996 extern Char *vgPlain_strcpy(Char *dest , Char const   *src ) ;
3997 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;   3997 extern Char *vgPlain_strncpy(Char *dest , Char const   *src , SizeT ndest ) ;
3998 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;   3998 extern Int vgPlain_strcmp(Char const   *s1 , Char const   *s2 ) ;
3999 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;   3999 extern Int vgPlain_strcasecmp(Char const   *s1 , Char const   *s2 ) ;
4000 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   4000 extern Int vgPlain_strncmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
4001 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;   4001 extern Int vgPlain_strncasecmp(Char const   *s1 , Char const   *s2 , SizeT nmax ) ;
4002 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;   4002 extern Char *vgPlain_strstr(Char const   *haystack , Char *needle ) ;
4003 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;   4003 extern Char *vgPlain_strcasestr(Char const   *haystack , Char *needle ) ;
4004 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;   4004 extern Char *vgPlain_strchr(Char const   *s , Char c ) ;
4005 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;   4005 extern Char *vgPlain_strrchr(Char const   *s , Char c ) ;
4006 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;   4006 extern SizeT vgPlain_strspn(Char const   *s , Char const   *accpt ) ;
4007 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;   4007 extern SizeT vgPlain_strcspn(Char const   *s , char const   *reject ) ;
4008 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;   4008 extern Char *vgPlain_strtok_r(Char *s , Char const   *delim , Char **saveptr ) ;
4009 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;   4009 extern Char *vgPlain_strtok(Char *s , Char const   *delim ) ;
4010 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;   4010 extern Bool vgPlain_parse_Addr(UChar **ppc , Addr *result ) ;
4011 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;   4011 extern void vgPlain_strncpy_safely(Char *dest , Char const   *src , SizeT ndest ) ;
4012 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;   4012 extern void *vgPlain_memcpy(void *d , void const   *s , SizeT sz ) ;
4013 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;   4013 extern void *vgPlain_memmove(void *d , void const   *s , SizeT sz ) ;
4014 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;   4014 extern void *vgPlain_memset(void *s , Int c , SizeT sz ) ;
4015 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;   4015 extern Int vgPlain_memcmp(void const   *s1 , void const   *s2 , SizeT n ) ;
4016 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,   4016 __inline static void ( __attribute__((__always_inline__)) vgPlain_bzero_inline)(void *s ,
4017                                                                                 SizeT sz )   4017                                                                                 SizeT sz )
4018 {   4018 {
4019   UWord *p ;   4019   UWord *p ;
4020   UWord tmp ;   4020   UWord tmp ;
4021   UWord tmp___0 ;   4021   UWord tmp___0 ;
4022   UWord tmp___1 ;   4022   UWord tmp___1 ;
4023   UWord tmp___2 ;   4023   UWord tmp___2 ;
4024   UWord tmp___3 ;   4024   UWord tmp___3 ;
4025   UWord tmp___4 ;   4025   UWord tmp___4 ;
4026   UWord tmp___5 ;   4026   UWord tmp___5 ;
4027   UWord tmp___6 ;   4027   UWord tmp___6 ;
4028   UWord tmp___7 ;   4028   UWord tmp___7 ;
4029   UWord tmp___8 ;   4029   UWord tmp___8 ;
4030   UWord tmp___9 ;   4030   UWord tmp___9 ;
4031   UWord tmp___10 ;   4031   UWord tmp___10 ;
4032   UWord tmp___11 ;   4032   UWord tmp___11 ;
4033   UWord tmp___12 ;   4033   UWord tmp___12 ;
4034   UWord tmp___13 ;   4034   UWord tmp___13 ;
4035   UWord tmp___14 ;   4035   UWord tmp___14 ;
4036   UWord tmp___15 ;   4036   UWord tmp___15 ;
4037   UWord tmp___16 ;   4037   UWord tmp___16 ;
4038   UWord tmp___17 ;   4038   UWord tmp___17 ;
4039   UWord tmp___18 ;   4039   UWord tmp___18 ;
4040   UWord tmp___19 ;   4040   UWord tmp___19 ;
4041   UWord tmp___20 ;   4041   UWord tmp___20 ;
4042   UWord tmp___21 ;   4042   UWord tmp___21 ;
4043   UWord tmp___22 ;   4043   UWord tmp___22 ;
4044   UWord tmp___23 ;   4044   UWord tmp___23 ;
4045   UWord tmp___24 ;   4045   UWord tmp___24 ;
4046   UWord tmp___25 ;   4046   UWord tmp___25 ;
4047   UWord tmp___26 ;   4047   UWord tmp___26 ;
4048   long tmp___27 ;   4048   long tmp___27 ;
4049   long tmp___28 ;   4049   long tmp___28 ;
4050     4050  
4051   {   4051   {
4052   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),   4052   tmp___27 = __builtin_expect((long )(! (! (0UL == (sz & (Addr )(sizeof(UWord ) - 1U))))),
4053                               1L);   4053                               1L);
4054   if (tmp___27) {   4054   if (tmp___27) {
4055     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),   4055     tmp___28 = __builtin_expect((long )(! (! (0UL == ((Addr )s & (Addr )(sizeof(UWord ) - 1U))))),
4056                                 1L);   4056                                 1L);
4057     if (tmp___28) {   4057     if (tmp___28) {
4058       p = (UWord *)s;   4058       p = (UWord *)s;
4059       switch (sz / (SizeT )sizeof(UWord )) {   4059       switch (sz / (SizeT )sizeof(UWord )) {
4060       case 8UL:   4060       case 8UL:
4061       tmp___5 = 0UL;   4061       tmp___5 = 0UL;
4062       *(p + 7) = tmp___5;   4062       *(p + 7) = tmp___5;
4063       tmp___4 = tmp___5;   4063       tmp___4 = tmp___5;
4064       *(p + 6) = tmp___4;   4064       *(p + 6) = tmp___4;
4065       tmp___3 = tmp___4;   4065       tmp___3 = tmp___4;
4066       *(p + 5) = tmp___3;   4066       *(p + 5) = tmp___3;
4067       tmp___2 = tmp___3;   4067       tmp___2 = tmp___3;
4068       *(p + 4) = tmp___2;   4068       *(p + 4) = tmp___2;
4069       tmp___1 = tmp___2;   4069       tmp___1 = tmp___2;
4070       *(p + 3) = tmp___1;   4070       *(p + 3) = tmp___1;
4071       tmp___0 = tmp___1;   4071       tmp___0 = tmp___1;
4072       *(p + 2) = tmp___0;   4072       *(p + 2) = tmp___0;
4073       tmp = tmp___0;   4073       tmp = tmp___0;
4074       *(p + 1) = tmp;   4074       *(p + 1) = tmp;
4075       *(p + 0) = tmp;   4075       *(p + 0) = tmp;
4076       return;   4076       return;
4077       case 7UL:   4077       case 7UL:
4078       tmp___11 = 0UL;   4078       tmp___11 = 0UL;
4079       *(p + 6) = tmp___11;   4079       *(p + 6) = tmp___11;
4080       tmp___10 = tmp___11;   4080       tmp___10 = tmp___11;
4081       *(p + 5) = tmp___10;   4081       *(p + 5) = tmp___10;
4082       tmp___9 = tmp___10;   4082       tmp___9 = tmp___10;
4083       *(p + 4) = tmp___9;   4083       *(p + 4) = tmp___9;
4084       tmp___8 = tmp___9;   4084       tmp___8 = tmp___9;
4085       *(p + 3) = tmp___8;   4085       *(p + 3) = tmp___8;
4086       tmp___7 = tmp___8;   4086       tmp___7 = tmp___8;
4087       *(p + 2) = tmp___7;   4087       *(p + 2) = tmp___7;
4088       tmp___6 = tmp___7;   4088       tmp___6 = tmp___7;
4089       *(p + 1) = tmp___6;   4089       *(p + 1) = tmp___6;
4090       *(p + 0) = tmp___6;   4090       *(p + 0) = tmp___6;
4091       return;   4091       return;
4092       case 6UL:   4092       case 6UL:
4093       tmp___16 = 0UL;   4093       tmp___16 = 0UL;
4094       *(p + 5) = tmp___16;   4094       *(p + 5) = tmp___16;
4095       tmp___15 = tmp___16;   4095       tmp___15 = tmp___16;
4096       *(p + 4) = tmp___15;   4096       *(p + 4) = tmp___15;
4097       tmp___14 = tmp___15;   4097       tmp___14 = tmp___15;
4098       *(p + 3) = tmp___14;   4098       *(p + 3) = tmp___14;
4099       tmp___13 = tmp___14;   4099       tmp___13 = tmp___14;
4100       *(p + 2) = tmp___13;   4100       *(p + 2) = tmp___13;
4101       tmp___12 = tmp___13;   4101       tmp___12 = tmp___13;
4102       *(p + 1) = tmp___12;   4102       *(p + 1) = tmp___12;
4103       *(p + 0) = tmp___12;   4103       *(p + 0) = tmp___12;
4104       return;   4104       return;
4105       case 5UL:   4105       case 5UL:
4106       tmp___20 = 0UL;   4106       tmp___20 = 0UL;
4107       *(p + 4) = tmp___20;   4107       *(p + 4) = tmp___20;
4108       tmp___19 = tmp___20;   4108       tmp___19 = tmp___20;
4109       *(p + 3) = tmp___19;   4109       *(p + 3) = tmp___19;
4110       tmp___18 = tmp___19;   4110       tmp___18 = tmp___19;
4111       *(p + 2) = tmp___18;   4111       *(p + 2) = tmp___18;
4112       tmp___17 = tmp___18;   4112       tmp___17 = tmp___18;
4113       *(p + 1) = tmp___17;   4113       *(p + 1) = tmp___17;
4114       *(p + 0) = tmp___17;   4114       *(p + 0) = tmp___17;
4115       return;   4115       return;
4116       case 4UL:   4116       case 4UL:
4117       tmp___23 = 0UL;   4117       tmp___23 = 0UL;
4118       *(p + 3) = tmp___23;   4118       *(p + 3) = tmp___23;
4119       tmp___22 = tmp___23;   4119       tmp___22 = tmp___23;
4120       *(p + 2) = tmp___22;   4120       *(p + 2) = tmp___22;
4121       tmp___21 = tmp___22;   4121       tmp___21 = tmp___22;
4122       *(p + 1) = tmp___21;   4122       *(p + 1) = tmp___21;
4123       *(p + 0) = tmp___21;   4123       *(p + 0) = tmp___21;
4124       return;   4124       return;
4125       case 3UL:   4125       case 3UL:
4126       tmp___25 = 0UL;   4126       tmp___25 = 0UL;
4127       *(p + 2) = tmp___25;   4127       *(p + 2) = tmp___25;
4128       tmp___24 = tmp___25;   4128       tmp___24 = tmp___25;
4129       *(p + 1) = tmp___24;   4129       *(p + 1) = tmp___24;
4130       *(p + 0) = tmp___24;   4130       *(p + 0) = tmp___24;
4131       return;   4131       return;
4132       case 2UL:   4132       case 2UL:
4133       tmp___26 = 0UL;   4133       tmp___26 = 0UL;
4134       *(p + 1) = tmp___26;   4134       *(p + 1) = tmp___26;
4135       *(p + 0) = tmp___26;   4135       *(p + 0) = tmp___26;
4136       return;   4136       return;
4137       case 1UL:   4137       case 1UL:
4138       *(p + 0) = 0UL;   4138       *(p + 0) = 0UL;
4139       return;   4139       return;
4140       case 0UL:   4140       case 0UL:
4141       return;   4141       return;
4142       default:   4142       default:
4143       break;   4143       break;
4144       }   4144       }
4145     } else {   4145     } else {
4146     4146  
4147     }   4147     }
4148   } else {   4148   } else {
4149     4149  
4150   }   4150   }
4151   vgPlain_memset(s, 0, sz);   4151   vgPlain_memset(s, 0, sz);
4152   return;   4152   return;
4153 }   4153 }
4154 }   4154 }
4155 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,   4155 extern void vgPlain_ssort(void *base , SizeT nmemb , SizeT size ,
4156                           Int (*compar)(void * , void * ) ) ;   4156                           Int (*compar)(void * , void * ) ) ;
4157 extern Int vgPlain_log2(UInt x ) ;   4157 extern Int vgPlain_log2(UInt x ) ;
4158 extern Int vgPlain_log2_64(ULong x ) ;   4158 extern Int vgPlain_log2_64(ULong x ) ;
4159 extern UInt vgPlain_random(UInt *pSeed ) ;   4159 extern UInt vgPlain_random(UInt *pSeed ) ;
4160 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;   4160 extern  __attribute__((__noreturn__)) void vgPlain_exit(Int status ) ;
4161 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;   4161 extern  __attribute__((__noreturn__)) void vgPlain_tool_panic(Char *str ) ;
4162 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,   4162 extern  __attribute__((__noreturn__)) void vgPlain_assert_fail(Bool isCore ,
4163                                                                Char const   *expr ,   4163                                                                Char const   *expr ,
4164                                                                Char const   *file ,   4164                                                                Char const   *file ,
4165                                                                Int line ,   4165                                                                Int line ,
4166                                                                Char const   *fn ,   4166                                                                Char const   *fn ,
4167                                                                HChar const   *format   4167                                                                HChar const   *format
4168                                                                , ...) ;   4168                                                                , ...) ;
4169 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;   4169 extern  __attribute__((__noreturn__)) void vgPlain_core_panic(Char *str ) ;
4170 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,   4170 extern  __attribute__((__noreturn__)) void vgPlain_core_panic_at(Char *str ,
4171                                                                  UnwindStartRegs * ) ;   4171                                                                  UnwindStartRegs * ) ;
4172 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;   4172 extern  __attribute__((__noreturn__)) void vgPlain_unimplemented(Char *msg ) ;
4173 extern void vgPlain_show_sched_status(void) ;   4173 extern void vgPlain_show_sched_status(void) ;
4174 extern SysRes vgPlain_mknod(Char const   *pathname , Int mode , UWord dev ) ;   4174 extern SysRes vgPlain_mknod(Char const   *pathname , Int mode , UWord dev ) ;
4175 extern SysRes vgPlain_open(Char const   *pathname , Int flags , Int mode ) ;   4175 extern SysRes vgPlain_open(Char const   *pathname , Int flags , Int mode ) ;
4176 extern Int vgPlain_fd_open(Char const   *pathname , Int flags , Int mode ) ;   4176 extern Int vgPlain_fd_open(Char const   *pathname , Int flags , Int mode ) ;
4177 extern void vgPlain_close(Int fd ) ;   4177 extern void vgPlain_close(Int fd ) ;
4178 extern Int vgPlain_read(Int fd , void *buf , Int count ) ;   4178 extern Int vgPlain_read(Int fd , void *buf , Int count ) ;
4179 extern Int vgPlain_write(Int fd , void const   *buf , Int count ) ;   4179 extern Int vgPlain_write(Int fd , void const   *buf , Int count ) ;
4180 extern Int vgPlain_pipe(Int *fd ) ;   4180 extern Int vgPlain_pipe(Int *fd ) ;
4181 extern Off64T vgPlain_lseek(Int fd , Off64T offset , Int whence ) ;   4181 extern Off64T vgPlain_lseek(Int fd , Off64T offset , Int whence ) ;
4182 extern SysRes vgPlain_stat(Char const   *file_name , struct vg_stat *buf ) ;   4182 extern SysRes vgPlain_stat(Char const   *file_name , struct vg_stat *buf ) ;
4183 extern Int vgPlain_fstat(Int fd , struct vg_stat *buf ) ;   4183 extern Int vgPlain_fstat(Int fd , struct vg_stat *buf ) ;
4184 extern SysRes vgPlain_dup(Int oldfd ) ;   4184 extern SysRes vgPlain_dup(Int oldfd ) ;
4185 extern SysRes vgPlain_dup2(Int oldfd , Int newfd ) ;   4185 extern SysRes vgPlain_dup2(Int oldfd , Int newfd ) ;
4186 extern Int vgPlain_rename(Char const   *old_name , Char const   *new_name ) ;   4186 extern Int vgPlain_rename(Char const   *old_name , Char const   *new_name ) ;
4187 extern Int vgPlain_unlink(Char const   *file_name ) ;   4187 extern Int vgPlain_unlink(Char const   *file_name ) ;
4188 extern Int vgPlain_poll(struct vki_pollfd *fds , Int nfds , Int timeout ) ;   4188 extern Int vgPlain_poll(struct vki_pollfd *fds , Int nfds , Int timeout ) ;
4189 extern Int vgPlain_readlink(Char const   *path , Char *buf , UInt bufsize ) ;   4189 extern Int vgPlain_readlink(Char const   *path , Char *buf , UInt bufsize ) ;
4190 extern Int vgPlain_getdents(Int fd , struct vki_dirent *dirp , UInt count ) ;   4190 extern Int vgPlain_getdents(Int fd , struct vki_dirent *dirp , UInt count ) ;
4191 extern Char *vgPlain_basename(Char const   *path ) ;   4191 extern Char *vgPlain_basename(Char const   *path ) ;
4192 extern Char *vgPlain_dirname(Char const   *path ) ;   4192 extern Char *vgPlain_dirname(Char const   *path ) ;
4193 extern HChar const   *vgPlain_tmpdir(void) ;   4193 extern HChar const   *vgPlain_tmpdir(void) ;
4194 extern Bool vgPlain_get_startup_wd(Char *buf , SizeT size ) ;   4194 extern Bool vgPlain_get_startup_wd(Char *buf , SizeT size ) ;
4195 extern Int vgPlain_safe_fd(Int oldfd ) ;   4195 extern Int vgPlain_safe_fd(Int oldfd ) ;
4196 extern Int vgPlain_fcntl(Int fd , Int cmd , Addr arg ) ;   4196 extern Int vgPlain_fcntl(Int fd , Int cmd , Addr arg ) ;
4197 extern Bool vgPlain_resolve_filename(Int fd , HChar *buf , Int n_buf ) ;   4197 extern Bool vgPlain_resolve_filename(Int fd , HChar *buf , Int n_buf ) ;
4198 extern Long vgPlain_fsize(Int fd ) ;   4198 extern Long vgPlain_fsize(Int fd ) ;
4199 extern Bool vgPlain_is_dir(HChar const   *f ) ;   4199 extern Bool vgPlain_is_dir(HChar const   *f ) ;
4200 extern Int vgPlain_connect_via_socket(UChar *str ) ;   4200 extern Int vgPlain_connect_via_socket(UChar *str ) ;
4201 extern UInt vgPlain_htonl(UInt x ) ;   4201 extern UInt vgPlain_htonl(UInt x ) ;
4202 extern UInt vgPlain_ntohl(UInt x ) ;   4202 extern UInt vgPlain_ntohl(UInt x ) ;
4203 extern UShort vgPlain_htons(UShort x ) ;   4203 extern UShort vgPlain_htons(UShort x ) ;
4204 extern UShort vgPlain_ntohs(UShort x ) ;   4204 extern UShort vgPlain_ntohs(UShort x ) ;
4205 extern Int vgPlain_socket(Int domain , Int type , Int protocol ) ;   4205 extern Int vgPlain_socket(Int domain , Int type , Int protocol ) ;
4206 extern Int vgPlain_write_socket(Int sd , void *msg , Int count ) ;   4206 extern Int vgPlain_write_socket(Int sd , void *msg , Int count ) ;
4207 extern Int vgPlain_getsockname(Int sd , struct vki_sockaddr *name ,   4207 extern Int vgPlain_getsockname(Int sd , struct vki_sockaddr *name ,
4208                                Int *namelen ) ;   4208                                Int *namelen ) ;
4209 extern Int vgPlain_getpeername(Int sd , struct vki_sockaddr *name ,   4209 extern Int vgPlain_getpeername(Int sd , struct vki_sockaddr *name ,
4210                                Int *namelen ) ;   4210                                Int *namelen ) ;
4211 extern Int vgPlain_getsockopt(Int sd , Int level , Int optname , void *optval ,   4211 extern Int vgPlain_getsockopt(Int sd , Int level , Int optname , void *optval ,
4212                               Int *optlen ) ;   4212                               Int *optlen ) ;
4213 extern Int vgPlain_access(HChar const   *path , Bool irusr , Bool iwusr ,   4213 extern Int vgPlain_access(HChar const   *path , Bool irusr , Bool iwusr ,
4214                           Bool ixusr ) ;   4214                           Bool ixusr ) ;
4215 extern Int vgPlain_check_executable(Bool *is_setuid , HChar const   *f ,   4215 extern Int vgPlain_check_executable(Bool *is_setuid , HChar const   *f ,
4216                                     Bool allow_setuid ) ;   4216                                     Bool allow_setuid ) ;
4217 extern SysRes vgPlain_pread(Int fd , void *buf , Int count , OffT offset ) ;   4217 extern SysRes vgPlain_pread(Int fd , void *buf , Int count , OffT offset ) ;
4218 extern Int vgPlain_mkstemp(HChar *part_of_name , HChar *fullname ) ;   4218 extern Int vgPlain_mkstemp(HChar *part_of_name , HChar *fullname ) ;
4219 extern Bool vgPlain_record_startup_wd(void) ;   4219 extern Bool vgPlain_record_startup_wd(void) ;
4220 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,   4220 extern UInt ( /* format attribute */  vgPlain_sprintf)(Char *buf ,
4221                                                        HChar const   *format   4221                                                        HChar const   *format
4222                                                        , ...) ;   4222                                                        , ...) ;
4223 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,   4223 extern UInt ( /* format attribute */  vgPlain_vsprintf)(Char *buf ,
4224                                                         HChar const   *format ,   4224                                                         HChar const   *format ,
4225                                                         va_list vargs ) ;   4225                                                         va_list vargs ) ;
4226 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,   4226 extern UInt ( /* format attribute */  vgPlain_snprintf)(Char *buf , Int size ,
4227                                                         HChar const   *format   4227                                                         HChar const   *format
4228                                                         , ...) ;   4228                                                         , ...) ;
4229 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,   4229 extern UInt ( /* format attribute */  vgPlain_vsnprintf)(Char *buf , Int size ,
4230                                                          HChar const   *format ,   4230                                                          HChar const   *format ,
4231                                                          va_list vargs ) ;   4231                                                          va_list vargs ) ;
4232 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,   4232 extern void vgPlain_percentify(ULong n , ULong m , UInt d , Int n_buf ,
4233                                char *buf ) ;   4233                                char *buf ) ;
4234 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format   4234 extern UInt ( /* format attribute */  vgPlain_printf)(HChar const   *format
4235                                                       , ...) ;   4235                                                       , ...) ;
4236 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,   4236 extern UInt ( /* format attribute */  vgPlain_vprintf)(HChar const   *format ,
4237                                                        va_list vargs ) ;   4237                                                        va_list vargs ) ;
4238 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format   4238 extern UInt ( /* format attribute */  vgPlain_printf_xml)(HChar const   *format
4239                                                           , ...) ;   4239                                                           , ...) ;
4240 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,   4240 extern UInt ( /* format attribute */  vgPlain_vprintf_xml)(HChar const   *format ,
4241                                                            va_list vargs ) ;   4241                                                            va_list vargs ) ;
4242 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,   4242 extern void vgPlain_vcbprintf(void (*char_sink)(HChar  , void *opaque ) ,
4243                               void *opaque , HChar const   *format ,   4243                               void *opaque , HChar const   *format ,
4244                               va_list vargs ) ;   4244                               va_list vargs ) ;
4245 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,   4245 extern UInt ( /* format attribute */  vgPlain_message)(VgMsgKind kind ,
4246                                                        HChar const   *format   4246                                                        HChar const   *format
4247                                                        , ...) ;   4247                                                        , ...) ;
4248 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,   4248 extern UInt ( /* format attribute */  vgPlain_vmessage)(VgMsgKind kind ,
4249                                                         HChar const   *format ,   4249                                                         HChar const   *format ,
4250                                                         va_list vargs ) ;   4250                                                         va_list vargs ) ;
4251 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;   4251 extern UInt ( /* format attribute */  vgPlain_fmsg)(HChar const   *format  , ...) ;
4252 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,   4252 extern  __attribute__((__noreturn__)) void ( /* format attribute */  vgPlain_fmsg_bad_option)(HChar *opt ,
4253                                                                                               HChar const   *format   4253                                                                                               HChar const   *format
4254                                                                                               , ...) ;   4254                                                                                               , ...) ;
4255 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;   4255 extern UInt ( /* format attribute */  vgPlain_umsg)(HChar const   *format  , ...) ;
4256 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;   4256 extern UInt ( /* format attribute */  vgPlain_dmsg)(HChar const   *format  , ...) ;
4257 extern void vgPlain_message_flush(void) ;   4257 extern void vgPlain_message_flush(void) ;
4258 extern OutputSink vgPlain_log_output_sink ;   4258 extern OutputSink vgPlain_log_output_sink ;
4259 extern OutputSink vgPlain_xml_output_sink ;   4259 extern OutputSink vgPlain_xml_output_sink ;
4260 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;   4260 extern void vgPlain_elapsed_wallclock_time(HChar *buf ) ;
4261 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;   4261 extern  __attribute__((__noreturn__)) void vgPlain_err_missing_prog(void) ;
4262 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *format   4262 extern  __attribute__((__noreturn__)) void vgPlain_err_config_error(Char *format
4263                                                                     , ...) ;   4263                                                                     , ...) ;
4264 extern Char **vgPlain_client_envp ;   4264 extern Char **vgPlain_client_envp ;
4265 extern Char *vgPlain_getenv(Char *name ) ;   4265 extern Char *vgPlain_getenv(Char *name ) ;
4266 extern Char const   *vgPlain_libdir ;   4266 extern Char const   *vgPlain_libdir ;
4267 extern Char const   *vgPlain_LD_PRELOAD_var_name ;   4267 extern Char const   *vgPlain_LD_PRELOAD_var_name ;
4268 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;   4268 extern Int vgPlain_waitpid(Int pid , Int *status , Int options ) ;
4269 extern Int vgPlain_system(Char *cmd ) ;   4269 extern Int vgPlain_system(Char *cmd ) ;
4270 extern Int vgPlain_fork(void) ;   4270 extern Int vgPlain_fork(void) ;
4271 extern void vgPlain_execv(Char *filename , Char **argv ) ;   4271 extern void vgPlain_execv(Char *filename , Char **argv ) ;
4272 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;   4272 extern Int vgPlain_getrlimit(Int resource , struct vki_rlimit *rlim ) ;
4273 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;   4273 extern Int vgPlain_setrlimit(Int resource , struct vki_rlimit  const  *rlim ) ;
4274 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,   4274 extern Int vgPlain_prctl(Int option , ULong arg2 , ULong arg3 , ULong arg4 ,
4275                          ULong arg5 ) ;   4275                          ULong arg5 ) ;
4276 extern Int vgPlain_gettid(void) ;   4276 extern Int vgPlain_gettid(void) ;
4277 extern Int vgPlain_getpid(void) ;   4277 extern Int vgPlain_getpid(void) ;
4278 extern Int vgPlain_getppid(void) ;   4278 extern Int vgPlain_getppid(void) ;
4279 extern Int vgPlain_getpgrp(void) ;   4279 extern Int vgPlain_getpgrp(void) ;
4280 extern Int vgPlain_geteuid(void) ;   4280 extern Int vgPlain_geteuid(void) ;
4281 extern Int vgPlain_getegid(void) ;   4281 extern Int vgPlain_getegid(void) ;
4282 extern UInt vgPlain_read_millisecond_timer(void) ;   4282 extern UInt vgPlain_read_millisecond_timer(void) ;
4283 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,   4283 extern void vgPlain_atfork(void (*pre)(ThreadId  ) ,
4284                            void (*parent)(ThreadId  ) ,   4284                            void (*parent)(ThreadId  ) ,
4285                            void (*child)(ThreadId  ) ) ;   4285                            void (*child)(ThreadId  ) ) ;
4286 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,   4286 extern Char **vgPlain_env_setenv(Char ***envp , Char const   *varname ,
4287                                  Char const   *val ) ;   4287                                  Char const   *val ) ;
4288 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;   4288 extern void vgPlain_env_unsetenv(Char **env , Char const   *varname ) ;
4289 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;   4289 extern void vgPlain_env_remove_valgrind_env_stuff(Char **env ) ;
4290 extern Char **vgPlain_env_clone(Char **env_clone ) ;   4290 extern Char **vgPlain_env_clone(Char **env_clone ) ;
4291 extern Int vgPlain_getgroups(Int size , UInt *list ) ;   4291 extern Int vgPlain_getgroups(Int size , UInt *list ) ;
4292 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;   4292 extern Int vgPlain_ptrace(Int request , Int pid , void *addr , void *data ) ;
4293 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;   4293 extern void vgPlain_do_atfork_pre(ThreadId tid ) ;
4294 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;   4294 extern void vgPlain_do_atfork_parent(ThreadId tid ) ;
4295 extern void vgPlain_do_atfork_child(ThreadId tid ) ;   4295 extern void vgPlain_do_atfork_child(ThreadId tid ) ;
4296 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,   4296 extern Int vgPlain_sigprocmask(Int how , vki_sigset_t const   *set ,
4297                                vki_sigset_t *oldset ) ;   4297                                vki_sigset_t *oldset ) ;
4298 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;   4298 extern Int vgPlain_sigfillset(vki_sigset_t *set ) ;
4299 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;   4299 extern Int vgPlain_sigemptyset(vki_sigset_t *set ) ;
4300 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;   4300 extern Bool vgPlain_isfullsigset(vki_sigset_t const   *set ) ;
4301 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;   4301 extern Bool vgPlain_isemptysigset(vki_sigset_t const   *set ) ;
4302 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,   4302 extern Bool vgPlain_iseqsigset(vki_sigset_t const   *set1 ,
4303                                vki_sigset_t const   *set2 ) ;   4303                                vki_sigset_t const   *set2 ) ;
4304 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;   4304 extern Int vgPlain_sigaddset(vki_sigset_t *set , Int signum ) ;
4305 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;   4305 extern Int vgPlain_sigdelset(vki_sigset_t *set , Int signum ) ;
4306 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;   4306 extern Int vgPlain_sigismember(vki_sigset_t const   *set , Int signum ) ;
4307 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4307 extern void vgPlain_sigaddset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4308 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;   4308 extern void vgPlain_sigdelset_from_set(vki_sigset_t *dst , vki_sigset_t *src ) ;
4309 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4309 extern void vgPlain_sigintersectset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4310 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;   4310 extern void vgPlain_sigcomplementset(vki_sigset_t *dst , vki_sigset_t *src ) ;
4311 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,   4311 extern Int vgPlain_sigaction(Int signum , vki_sigaction_toK_t const   *act ,
4312                              vki_sigaction_fromK_t *oldact ) ;   4312                              vki_sigaction_fromK_t *oldact ) ;
4313 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,   4313 extern void vgPlain_convert_sigaction_fromK_to_toK(vki_sigaction_fromK_t * ,
4314                                                    vki_sigaction_toK_t * ) ;   4314                                                    vki_sigaction_toK_t * ) ;
4315 extern Int vgPlain_kill(Int pid , Int signo ) ;   4315 extern Int vgPlain_kill(Int pid , Int signo ) ;
4316 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;   4316 extern Int vgPlain_tkill(Int lwpid , Int signo ) ;
4317 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;   4317 extern Int vgPlain_sigtimedwait_zero(vki_sigset_t const   * , vki_siginfo_t * ) ;
4318 extern Addr vgPlain_get_IP(ThreadId tid ) ;   4318 extern Addr vgPlain_get_IP(ThreadId tid ) ;
4319 extern Addr vgPlain_get_SP(ThreadId tid ) ;   4319 extern Addr vgPlain_get_SP(ThreadId tid ) ;
4320 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,   4320 extern void vgPlain_get_shadow_regs_area(ThreadId tid , UChar *dst ,
4321                                          Int shadowNo , PtrdiffT offset ,   4321                                          Int shadowNo , PtrdiffT offset ,
4322                                          SizeT size ) ;   4322                                          SizeT size ) ;
4323 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,   4323 extern void vgPlain_set_shadow_regs_area(ThreadId tid , Int shadowNo ,
4324                                          PtrdiffT offset , SizeT size ,   4324                                          PtrdiffT offset , SizeT size ,
4325                                          UChar const   *src ) ;   4325                                          UChar const   *src ) ;
4326 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,   4326 extern void vgPlain_set_syscall_return_shadows(ThreadId tid , UWord s1res ,
4327                                                UWord s2res , UWord s1err ,   4327                                                UWord s2res , UWord s1err ,
4328                                                UWord s2err ) ;   4328                                                UWord s2err ) ;
4329 extern void vgPlain_apply_to_GP_regs(void (*f)(ThreadId tid , HChar *regname ,   4329 extern void vgPlain_apply_to_GP_regs(void (*f)(ThreadId tid , HChar *regname ,
4330                                                UWord val ) ) ;   4330                                                UWord val ) ) ;
4331 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;   4331 extern void vgPlain_thread_stack_reset_iter(ThreadId *tid ) ;
4332 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,   4332 extern Bool vgPlain_thread_stack_next(ThreadId *tid , Addr *stack_min ,
4333                                       Addr *stack_max ) ;   4333                                       Addr *stack_max ) ;
4334 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;   4334 extern Addr vgPlain_thread_get_stack_max(ThreadId tid ) ;
4335 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;   4335 extern SizeT vgPlain_thread_get_stack_size(ThreadId tid ) ;
4336 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;   4336 extern Addr vgPlain_thread_get_altstack_min(ThreadId tid ) ;
4337 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;   4337 extern SizeT vgPlain_thread_get_altstack_size(ThreadId tid ) ;
4338 extern void *vgPlain_fnptr_to_fnentry(void * ) ;   4338 extern void *vgPlain_fnptr_to_fnentry(void * ) ;
4339 extern Addr vgPlain_get_FP(ThreadId tid ) ;   4339 extern Addr vgPlain_get_FP(ThreadId tid ) ;
4340 extern void vgPlain_set_IP(ThreadId tid , Addr encip ) ;   4340 extern void vgPlain_set_IP(ThreadId tid , Addr encip ) ;
4341 extern void vgPlain_set_SP(ThreadId tid , Addr sp ) ;   4341 extern void vgPlain_set_SP(ThreadId tid , Addr sp ) ;
4342 extern void vgPlain_get_UnwindStartRegs(UnwindStartRegs *regs , ThreadId tid ) ;   4342 extern void vgPlain_get_UnwindStartRegs(UnwindStartRegs *regs , ThreadId tid ) ;
4343 extern Bool vgPlain_machine_get_hwcaps(void) ;   4343 extern Bool vgPlain_machine_get_hwcaps(void) ;
4344 extern void vgPlain_machine_get_VexArchInfo(VexArch * , VexArchInfo * ) ;   4344 extern void vgPlain_machine_get_VexArchInfo(VexArch * , VexArchInfo * ) ;
4345 extern UInt vgPlain_machine_x86_have_mxcsr ;   4345 extern UInt vgPlain_machine_x86_have_mxcsr ;
4346 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;   4346 extern void *vgPlain_malloc(HChar *cc , SizeT nbytes ) ;
4347 extern void vgPlain_free(void *p ) ;   4347 extern void vgPlain_free(void *p ) ;
4348 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;   4348 extern void *vgPlain_calloc(HChar *cc , SizeT n , SizeT bytes_per_elem ) ;
4349 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;   4349 extern void *vgPlain_realloc(HChar *cc , void *p , SizeT size ) ;
4350 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;   4350 extern Char *vgPlain_strdup(HChar *cc , Char const   *s ) ;
4351 extern SizeT vgPlain_malloc_usable_size(void *p ) ;   4351 extern SizeT vgPlain_malloc_usable_size(void *p ) ;
4352 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,   4352 extern  __attribute__((__noreturn__)) void vgPlain_out_of_memory_NORETURN(HChar *who ,
4353                                                                           SizeT szB ) ;   4353                                                                           SizeT szB ) ;
4354 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;   4354 extern void *vgPlain_arena_malloc(ArenaId arena , HChar *cc , SizeT nbytes ) ;
4355 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;   4355 extern void vgPlain_arena_free(ArenaId arena , void *ptr ) ;
4356 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,   4356 extern void *vgPlain_arena_calloc(ArenaId arena , HChar *cc , SizeT nmemb ,
4357                                   SizeT bytes_per_memb ) ;   4357                                   SizeT bytes_per_memb ) ;
4358 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,   4358 extern void *vgPlain_arena_realloc(ArenaId arena , HChar *cc , void *ptr ,
4359                                    SizeT size ) ;   4359                                    SizeT size ) ;
4360 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,   4360 extern void *vgPlain_arena_memalign(ArenaId aid , HChar *cc , SizeT req_alignB ,
4361                                     SizeT req_pszB ) ;   4361                                     SizeT req_pszB ) ;
4362 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;   4362 extern Char *vgPlain_arena_strdup(ArenaId aid , HChar *cc , Char const   *s ) ;
4363 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;   4363 extern SizeT vgPlain_arena_malloc_usable_size(ArenaId aid , void *payload ) ;
4364 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;   4364 extern void vgPlain_mallinfo(ThreadId tid , struct vg_mallinfo *mi ) ;
4365 extern void vgPlain_sanity_check_malloc_all(void) ;   4365 extern void vgPlain_sanity_check_malloc_all(void) ;
4366 extern void vgPlain_print_all_arena_stats(void) ;   4366 extern void vgPlain_print_all_arena_stats(void) ;
4367 extern void vgPlain_print_arena_cc_analysis(void) ;   4367 extern void vgPlain_print_arena_cc_analysis(void) ;
4368 extern Int vgPlain_clo_verbosity ;   4368 extern Int vgPlain_clo_verbosity ;
4369 extern Bool vgPlain_clo_stats ;   4369 extern Bool vgPlain_clo_stats ;
4370 extern Int vgPlain_clo_vgdb_error ;   4370 extern Int vgPlain_clo_vgdb_error ;
4371 extern Bool vgPlain_clo_xml ;   4371 extern Bool vgPlain_clo_xml ;
4372 extern HChar *vgPlain_clo_xml_user_comment ;   4372 extern HChar *vgPlain_clo_xml_user_comment ;
4373 extern VexControl vgPlain_clo_vex_control ;   4373 extern VexControl vgPlain_clo_vex_control ;
4374 extern Int vgPlain_clo_backtrace_size ;   4374 extern Int vgPlain_clo_backtrace_size ;
4375 extern Bool vgPlain_clo_show_below_main ;   4375 extern Bool vgPlain_clo_show_below_main ;
4376 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;   4376 extern Char *vgPlain_expand_file_name(Char *option_name , Char *format ) ;
4377 extern Bool vgPlain_clo_error_limit ;   4377 extern Bool vgPlain_clo_error_limit ;
4378 extern Int vgPlain_clo_error_exitcode ;   4378 extern Int vgPlain_clo_error_exitcode ;
4379 extern VgVgdb vgPlain_clo_vgdb ;   4379 extern VgVgdb vgPlain_clo_vgdb ;
4380 extern Int vgPlain_clo_vgdb_poll ;   4380 extern Int vgPlain_clo_vgdb_poll ;
4381 extern HChar *vgPlain_clo_vgdb_prefix ;   4381 extern HChar *vgPlain_clo_vgdb_prefix ;
4382 extern Bool vgPlain_clo_vgdb_shadow_registers ;   4382 extern Bool vgPlain_clo_vgdb_shadow_registers ;
4383 extern Bool vgPlain_clo_db_attach ;   4383 extern Bool vgPlain_clo_db_attach ;
4384 extern Char *vgPlain_clo_db_command ;   4384 extern Char *vgPlain_clo_db_command ;
4385 extern Int vgPlain_clo_gen_suppressions ;   4385 extern Int vgPlain_clo_gen_suppressions ;
4386 extern Int vgPlain_clo_sanity_level ;   4386 extern Int vgPlain_clo_sanity_level ;
4387 extern Bool vgPlain_clo_demangle ;   4387 extern Bool vgPlain_clo_demangle ;
4388 extern Bool vgPlain_clo_trace_children ;   4388 extern Bool vgPlain_clo_trace_children ;
4389 extern HChar *vgPlain_clo_trace_children_skip ;   4389 extern HChar *vgPlain_clo_trace_children_skip ;
4390 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;   4390 extern HChar *vgPlain_clo_trace_children_skip_by_arg ;
4391 extern Bool vgPlain_clo_child_silent_after_fork ;   4391 extern Bool vgPlain_clo_child_silent_after_fork ;
4392 extern Char *vgPlain_clo_log_fname_expanded ;   4392 extern Char *vgPlain_clo_log_fname_expanded ;
4393 extern Char *vgPlain_clo_xml_fname_expanded ;   4393 extern Char *vgPlain_clo_xml_fname_expanded ;
4394 extern Bool vgPlain_clo_time_stamp ;   4394 extern Bool vgPlain_clo_time_stamp ;
4395 extern Int vgPlain_clo_input_fd ;   4395 extern Int vgPlain_clo_input_fd ;
4396 extern Int vgPlain_clo_n_suppressions ;   4396 extern Int vgPlain_clo_n_suppressions ;
4397 extern Char *vgPlain_clo_suppressions[100] ;   4397 extern Char *vgPlain_clo_suppressions[100] ;
4398 extern Int vgPlain_clo_n_fullpath_after ;   4398 extern Int vgPlain_clo_n_fullpath_after ;
4399 extern Char *vgPlain_clo_fullpath_after[100] ;   4399 extern Char *vgPlain_clo_fullpath_after[100] ;
4400 extern UChar vgPlain_clo_trace_flags ;   4400 extern UChar vgPlain_clo_trace_flags ;
4401 extern UChar vgPlain_clo_profile_flags ;   4401 extern UChar vgPlain_clo_profile_flags ;
4402 extern Int vgPlain_clo_trace_notbelow ;   4402 extern Int vgPlain_clo_trace_notbelow ;
4403 extern Bool vgPlain_clo_trace_syscalls ;   4403 extern Bool vgPlain_clo_trace_syscalls ;
4404 extern Bool vgPlain_clo_trace_signals ;   4404 extern Bool vgPlain_clo_trace_signals ;
4405 extern Bool vgPlain_clo_trace_symtab ;   4405 extern Bool vgPlain_clo_trace_symtab ;
4406 extern HChar *vgPlain_clo_trace_symtab_patt ;   4406 extern HChar *vgPlain_clo_trace_symtab_patt ;
4407 extern Bool vgPlain_clo_trace_cfi ;   4407 extern Bool vgPlain_clo_trace_cfi ;
4408 extern Bool vgPlain_clo_debug_dump_syms ;   4408 extern Bool vgPlain_clo_debug_dump_syms ;
4409 extern Bool vgPlain_clo_debug_dump_line ;   4409 extern Bool vgPlain_clo_debug_dump_line ;
4410 extern Bool vgPlain_clo_debug_dump_frames ;   4410 extern Bool vgPlain_clo_debug_dump_frames ;
4411 extern Bool vgPlain_clo_trace_redir ;   4411 extern Bool vgPlain_clo_trace_redir ;
4412 extern enum FairSchedType vgPlain_clo_fair_sched ;   4412 extern enum FairSchedType vgPlain_clo_fair_sched ;
4413 extern Bool vgPlain_clo_trace_sched ;   4413 extern Bool vgPlain_clo_trace_sched ;
4414 extern Bool vgPlain_clo_profile_heap ;   4414 extern Bool vgPlain_clo_profile_heap ;
4415 extern Int vgPlain_clo_dump_error ;   4415 extern Int vgPlain_clo_dump_error ;
4416 extern Char *vgPlain_clo_sim_hints ;   4416 extern Char *vgPlain_clo_sim_hints ;
4417 extern Bool vgPlain_clo_sym_offsets ;   4417 extern Bool vgPlain_clo_sym_offsets ;
4418 extern Bool vgPlain_clo_read_var_info ;   4418 extern Bool vgPlain_clo_read_var_info ;
4419 extern Char *vgPlain_clo_prefix_to_strip ;   4419 extern Char *vgPlain_clo_prefix_to_strip ;
4420 extern Int vgPlain_clo_n_req_tsyms ;   4420 extern Int vgPlain_clo_n_req_tsyms ;
4421 extern HChar *vgPlain_clo_req_tsyms[100] ;   4421 extern HChar *vgPlain_clo_req_tsyms[100] ;
4422 extern Bool vgPlain_clo_track_fds ;   4422 extern Bool vgPlain_clo_track_fds ;
4423 extern Bool vgPlain_clo_run_libc_freeres ;   4423 extern Bool vgPlain_clo_run_libc_freeres ;
4424 extern Bool vgPlain_clo_show_emwarns ;   4424 extern Bool vgPlain_clo_show_emwarns ;
4425 extern Word vgPlain_clo_max_stackframe ;   4425 extern Word vgPlain_clo_max_stackframe ;
4426 extern Word vgPlain_clo_main_stacksize ;   4426 extern Word vgPlain_clo_main_stacksize ;
4427 extern Bool vgPlain_clo_wait_for_gdb ;   4427 extern Bool vgPlain_clo_wait_for_gdb ;
4428 extern VgSmc vgPlain_clo_smc_check ;   4428 extern VgSmc vgPlain_clo_smc_check ;
4429 extern HChar *vgPlain_clo_kernel_variant ;   4429 extern HChar *vgPlain_clo_kernel_variant ;
4430 extern Bool vgPlain_clo_dsymutil ;   4430 extern Bool vgPlain_clo_dsymutil ;
4431 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,   4431 extern Bool vgPlain_should_we_trace_this_child(HChar *child_exe_name ,
4432                                                HChar **child_argv ) ;   4432                                                HChar **child_argv ) ;
4433 extern ThreadId vgPlain_alloc_ThreadState(void) ;   4433 extern ThreadId vgPlain_alloc_ThreadState(void) ;
4434 extern void vgPlain_exit_thread(ThreadId tid ) ;   4434 extern void vgPlain_exit_thread(ThreadId tid ) ;
4435 extern void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;   4435 extern void vgPlain_get_thread_out_of_syscall(ThreadId tid ) ;
4436 extern void vgPlain_nuke_all_threads_except(ThreadId me ,   4436 extern void vgPlain_nuke_all_threads_except(ThreadId me ,
4437                                             VgSchedReturnCode reason ) ;   4437                                             VgSchedReturnCode reason ) ;
4438 extern void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;   4438 extern void vgPlain_acquire_BigLock(ThreadId tid , HChar *who ) ;
4439 extern void vgPlain_acquire_BigLock_LL(HChar *who ) ;   4439 extern void vgPlain_acquire_BigLock_LL(HChar *who ) ;
4440 extern void vgPlain_release_BigLock(ThreadId tid , ThreadStatus state ,   4440 extern void vgPlain_release_BigLock(ThreadId tid , ThreadStatus state ,
4441                                     HChar *who ) ;   4441                                     HChar *who ) ;
4442 extern void vgPlain_release_BigLock_LL(HChar *who ) ;   4442 extern void vgPlain_release_BigLock_LL(HChar *who ) ;
4443 extern void vgPlain_vg_yield(void) ;   4443 extern void vgPlain_vg_yield(void) ;
4444 extern VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;   4444 extern VgSchedReturnCode vgPlain_scheduler(ThreadId tid ) ;
4445 extern ThreadId vgPlain_scheduler_init_phase1(void) ;   4445 extern ThreadId vgPlain_scheduler_init_phase1(void) ;
4446 extern void vgPlain_scheduler_init_phase2(ThreadId main_tid , Addr clstack_end ,   4446 extern void vgPlain_scheduler_init_phase2(ThreadId main_tid , Addr clstack_end ,
4447                                           SizeT clstack_size ) ;   4447                                           SizeT clstack_size ) ;
4448 extern void vgPlain_disable_vgdb_poll(void) ;   4448 extern void vgPlain_disable_vgdb_poll(void) ;
4449 extern void vgPlain_force_vgdb_poll(void) ;   4449 extern void vgPlain_force_vgdb_poll(void) ;
4450 extern void vgPlain_print_scheduler_stats(void) ;   4450 extern void vgPlain_print_scheduler_stats(void) ;
4451 extern Bool vgPlain_in_generated_code ;   4451 extern Bool vgPlain_in_generated_code ;
4452 extern void vgPlain_sanity_check_general(Bool force_expensive ) ;   4452 extern void vgPlain_sanity_check_general(Bool force_expensive ) ;
4453 extern void vgPlain_set_fault_catcher(void (*catcher)(Int sig , Addr addr ) ) ;   4453 extern void vgPlain_set_fault_catcher(void (*catcher)(Int sig , Addr addr ) ) ;
4454 extern Int vgPlain_max_signal ;   4454 extern Int vgPlain_max_signal ;
4455 extern void vgPlain_sigstartup_actions(void) ;   4455 extern void vgPlain_sigstartup_actions(void) ;
4456 extern void vgPlain_poll_signals(ThreadId  ) ;   4456 extern void vgPlain_poll_signals(ThreadId  ) ;
4457 extern SysRes vgPlain_do_sys_sigaltstack(ThreadId tid , vki_stack_t *ss ,   4457 extern SysRes vgPlain_do_sys_sigaltstack(ThreadId tid , vki_stack_t *ss ,
4458                                          vki_stack_t *oss ) ;   4458                                          vki_stack_t *oss ) ;
4459 extern SysRes vgPlain_do_sys_sigaction(Int signo ,   4459 extern SysRes vgPlain_do_sys_sigaction(Int signo ,
4460                                        vki_sigaction_toK_t const   *new_act ,   4460                                        vki_sigaction_toK_t const   *new_act ,
4461                                        vki_sigaction_fromK_t *old_act ) ;   4461                                        vki_sigaction_fromK_t *old_act ) ;
4462 extern SysRes vgPlain_do_sys_sigprocmask(ThreadId tid , Int how ,   4462 extern SysRes vgPlain_do_sys_sigprocmask(ThreadId tid , Int how ,
4463                                          vki_sigset_t *set ,   4463                                          vki_sigset_t *set ,
4464                                          vki_sigset_t *oldset ) ;   4464                                          vki_sigset_t *oldset ) ;
4465 extern void vgPlain_clear_out_queued_signals(ThreadId tid ,   4465 extern void vgPlain_clear_out_queued_signals(ThreadId tid ,
4466                                              vki_sigset_t *saved_mask ) ;   4466                                              vki_sigset_t *saved_mask ) ;
4467 extern void vgPlain_kill_self(Int sigNo ) ;   4467 extern void vgPlain_kill_self(Int sigNo ) ;
4468 extern void vgPlain_synth_fault(ThreadId tid ) ;   4468 extern void vgPlain_synth_fault(ThreadId tid ) ;
4469 extern void vgPlain_synth_fault_mapping(ThreadId tid , Addr addr ) ;   4469 extern void vgPlain_synth_fault_mapping(ThreadId tid , Addr addr ) ;
4470 extern void vgPlain_synth_fault_perms(ThreadId tid , Addr addr ) ;   4470 extern void vgPlain_synth_fault_perms(ThreadId tid , Addr addr ) ;
4471 extern void vgPlain_synth_sigill(ThreadId tid , Addr addr ) ;   4471 extern void vgPlain_synth_sigill(ThreadId tid , Addr addr ) ;
4472 extern void vgPlain_synth_sigtrap(ThreadId tid ) ;   4472 extern void vgPlain_synth_sigtrap(ThreadId tid ) ;
4473 extern void vgPlain_synth_sigbus(ThreadId tid ) ;   4473 extern void vgPlain_synth_sigbus(ThreadId tid ) ;
4474 extern Bool vgPlain_extend_stack(Addr addr , UInt maxsize ) ;   4474 extern Bool vgPlain_extend_stack(Addr addr , UInt maxsize ) ;
4475 extern void vgPlain_set_default_handler(Int sig ) ;   4475 extern void vgPlain_set_default_handler(Int sig ) ;
4476 extern UInt vgPlain_get_StackTrace(ThreadId tid , StackTrace ips , UInt n_ips ,   4476 extern UInt vgPlain_get_StackTrace(ThreadId tid , StackTrace ips , UInt n_ips ,
4477                                    StackTrace sps , StackTrace fps ,   4477                                    StackTrace sps , StackTrace fps ,
4478                                    Word first_ip_delta ) ;   4478                                    Word first_ip_delta ) ;
4479 extern void vgPlain_apply_StackTrace(void (*action)(UInt n , Addr ip ,   4479 extern void vgPlain_apply_StackTrace(void (*action)(UInt n , Addr ip ,
4480                                                     void *opaque ) ,   4480                                                     void *opaque ) ,
4481                                      void *opaque , StackTrace ips , UInt n_ips ) ;   4481                                      void *opaque , StackTrace ips , UInt n_ips ) ;
4482 extern void vgPlain_pp_StackTrace(StackTrace ips , UInt n_ips ) ;   4482 extern void vgPlain_pp_StackTrace(StackTrace ips , UInt n_ips ) ;
4483 extern void vgPlain_get_and_pp_StackTrace(ThreadId tid , UInt n_ips ) ;   4483 extern void vgPlain_get_and_pp_StackTrace(ThreadId tid , UInt n_ips ) ;
4484 extern UInt vgPlain_get_StackTrace_wrk(ThreadId tid_if_known , Addr *ips ,   4484 extern UInt vgPlain_get_StackTrace_wrk(ThreadId tid_if_known , Addr *ips ,
4485                                        UInt n_ips , Addr *sps , Addr *fps ,   4485                                        UInt n_ips , Addr *sps , Addr *fps ,
4486                                        UnwindStartRegs *startRegs ,   4486                                        UnwindStartRegs *startRegs ,
4487                                        Addr fp_max_orig ) ;   4487                                        Addr fp_max_orig ) ;
4488 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,   4488 extern SysRes vgPlain_do_syscall(UWord sysno , UWord  , UWord  , UWord  ,
4489                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;   4489                                  UWord  , UWord  , UWord  , UWord  , UWord  ) ;
4490 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;   4490 extern SysRes vgPlain_mk_SysRes_x86_linux(Int val ) ;
4491 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;   4491 extern SysRes vgPlain_mk_SysRes_amd64_linux(Long val ) ;
4492 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;   4492 extern SysRes vgPlain_mk_SysRes_ppc32_linux(UInt val , UInt cr0so ) ;
4493 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;   4493 extern SysRes vgPlain_mk_SysRes_ppc64_linux(ULong val , ULong cr0so ) ;
4494 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;   4494 extern SysRes vgPlain_mk_SysRes_arm_linux(Int val ) ;
4495 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,   4495 extern SysRes vgPlain_mk_SysRes_x86_darwin(UChar scclass , Bool isErr ,
4496                                            UInt wHI , UInt wLO ) ;   4496                                            UInt wHI , UInt wLO ) ;
4497 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,   4497 extern SysRes vgPlain_mk_SysRes_amd64_darwin(UChar scclass , Bool isErr ,
4498                                              ULong wHI , ULong wLO ) ;   4498                                              ULong wHI , ULong wLO ) ;
4499 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;   4499 extern SysRes vgPlain_mk_SysRes_s390x_linux(Long val ) ;
4500 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;   4500 extern SysRes vgPlain_mk_SysRes_Error(UWord val ) ;
4501 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;   4501 extern SysRes vgPlain_mk_SysRes_Success(UWord val ) ;
4502 extern HChar const   *vgPlain_strerror(UWord errnum ) ;   4502 extern HChar const   *vgPlain_strerror(UWord errnum ) ;
4503 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;   4503 extern void vgPlain_main_thread_wrapper_NORETURN(ThreadId tid ) ;
4504 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;   4504 extern void vgPlain_client_syscall(ThreadId tid , UInt trc ) ;
4505 extern void vgPlain_post_syscall(ThreadId tid ) ;   4505 extern void vgPlain_post_syscall(ThreadId tid ) ;
4506 extern void vgPlain_clear_syscallInfo(Int tid ) ;   4506 extern void vgPlain_clear_syscallInfo(Int tid ) ;
4507 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,   4507 extern void vgPlain_fixup_guest_state_after_syscall_interrupted(ThreadId tid ,
4508                                                                 Addr ip ,   4508                                                                 Addr ip ,
4509                                                                 SysRes sysret ,   4509                                                                 SysRes sysret ,
4510                                                                 Bool restart ) ;   4510                                                                 Bool restart ) ;
4511 void vgPlain_reap_threads(ThreadId self ) ;   4511 void vgPlain_reap_threads(ThreadId self ) ;
4512 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;   4512 extern void vgPlain_cleanup_thread(ThreadArchState * ) ;
4513 void vgPlain_init_preopened_fds(void) ;   4513 void vgPlain_init_preopened_fds(void) ;
4514 void vgPlain_show_open_fds(void) ;   4514 void vgPlain_show_open_fds(void) ;
4515 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,   4515 extern void (*vgPlain_address_of_m_main_shutdown_actions_NORETURN)(ThreadId  ,
4516                                                                    VgSchedReturnCode  ) ;   4516                                                                    VgSchedReturnCode  ) ;
4517 extern void (*vgPlain_tl_pre_clo_init)(void) ;   4517 extern void (*vgPlain_tl_pre_clo_init)(void) ;
4518 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,   4518 extern void vgPlain_basic_tool_funcs(void (*post_clo_init)(void) ,
4519                                      IRSB *(*instrument)(VgCallbackClosure *closure ,   4519                                      IRSB *(*instrument)(VgCallbackClosure *closure ,
4520                                                          IRSB *sb_in ,   4520                                                          IRSB *sb_in ,
4521                                                          VexGuestLayout *layout ,   4521                                                          VexGuestLayout *layout ,
4522                                                          VexGuestExtents *vge ,   4522                                                          VexGuestExtents *vge ,
4523                                                          IRType gWordTy ,   4523                                                          IRType gWordTy ,
4524                                                          IRType hWordTy ) ,   4524                                                          IRType hWordTy ) ,
4525                                      void (*fini)(Int  ) ) ;   4525                                      void (*fini)(Int  ) ) ;
4526 extern void vgPlain_details_name(Char *name ) ;   4526 extern void vgPlain_details_name(Char *name ) ;
4527 extern void vgPlain_details_version(Char *version ) ;   4527 extern void vgPlain_details_version(Char *version ) ;
4528 extern void vgPlain_details_description(Char *description ) ;   4528 extern void vgPlain_details_description(Char *description ) ;
4529 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;   4529 extern void vgPlain_details_copyright_author(Char *copyright_author ) ;
4530 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;   4530 extern void vgPlain_details_avg_translation_sizeB(UInt size ) ;
4531 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;   4531 extern void vgPlain_details_bug_reports_to(Char *bug_reports_to ) ;
4532 extern void vgPlain_needs_libc_freeres(void) ;   4532 extern void vgPlain_needs_libc_freeres(void) ;
4533 extern void vgPlain_needs_core_errors(void) ;   4533 extern void vgPlain_needs_core_errors(void) ;
4534 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,   4534 extern void vgPlain_needs_tool_errors(Bool (*eq_Error)(VgRes res , Error *e1 ,
4535                                                        Error *e2 ) ,   4535                                                        Error *e2 ) ,
4536                                       void (*before_pp_Error)(Error *err ) ,   4536                                       void (*before_pp_Error)(Error *err ) ,
4537                                       void (*pp_Error)(Error *err ) ,   4537                                       void (*pp_Error)(Error *err ) ,
4538                                       Bool show_ThreadIDs_for_errors ,   4538                                       Bool show_ThreadIDs_for_errors ,
4539                                       UInt (*update_extra)(Error *err ) ,   4539                                       UInt (*update_extra)(Error *err ) ,
4540                                       Bool (*recognised_suppression)(Char *name ,   4540                                       Bool (*recognised_suppression)(Char *name ,
4541                                                                      Supp *su ) ,   4541                                                                      Supp *su ) ,
4542                                       Bool (*read_extra_suppression_info)(Int fd ,   4542                                       Bool (*read_extra_suppression_info)(Int fd ,
4543                                                                           Char **bufpp ,   4543                                                                           Char **bufpp ,
4544                                                                           SizeT *nBufp ,   4544                                                                           SizeT *nBufp ,
4545                                                                           Supp *su ) ,   4545                                                                           Supp *su ) ,
4546                                       Bool (*error_matches_suppression)(Error *err ,   4546                                       Bool (*error_matches_suppression)(Error *err ,
4547                                                                         Supp *su ) ,   4547                                                                         Supp *su ) ,
4548                                       Char *(*get_error_name)(Error *err ) ,   4548                                       Char *(*get_error_name)(Error *err ) ,
4549                                       Bool (*print_extra_suppression_info)(Error *err ,   4549                                       Bool (*print_extra_suppression_info)(Error *err ,
4550                                                                            Char *buf ,   4550                                                                            Char *buf ,
4551                                                                            Int nBuf ) ) ;   4551                                                                            Int nBuf ) ) ;
4552 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,   4552 extern void vgPlain_needs_superblock_discards(void (*discard_superblock_info)(Addr64 orig_addr ,
4553                                                                               VexGuestExtents extents ) ) ;   4553                                                                               VexGuestExtents extents ) ) ;
4554 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,   4554 extern void vgPlain_needs_command_line_options(Bool (*process_cmd_line_option)(Char *argv ) ,
4555                                                void (*print_usage)(void) ,   4555                                                void (*print_usage)(void) ,
4556                                                void (*print_debug_usage)(void) ) ;   4556                                                void (*print_debug_usage)(void) ) ;
4557 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,   4557 extern void vgPlain_needs_client_requests(Bool (*handle_client_request)(ThreadId tid ,
4558                                                                         UWord *arg_block ,   4558                                                                         UWord *arg_block ,
4559                                                                         UWord *ret ) ) ;   4559                                                                         UWord *ret ) ) ;
4560 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,   4560 extern void vgPlain_needs_syscall_wrapper(void (*pre_syscall)(ThreadId tid ,
4561                                                               UInt syscallno ,   4561                                                               UInt syscallno ,
4562                                                               UWord *args ,   4562                                                               UWord *args ,
4563                                                               UInt nArgs ) ,   4563                                                               UInt nArgs ) ,
4564                                           void (*post_syscall)(ThreadId tid ,   4564                                           void (*post_syscall)(ThreadId tid ,
4565                                                                UInt syscallno ,   4565                                                                UInt syscallno ,
4566                                                                UWord *args ,   4566                                                                UWord *args ,
4567                                                                UInt nArgs ,   4567                                                                UInt nArgs ,
4568                                                                SysRes res ) ) ;   4568                                                                SysRes res ) ) ;
4569 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,   4569 extern void vgPlain_needs_sanity_checks(Bool (*cheap_sanity_check)(void) ,
4570                                         Bool (*expensive_sanity_check)(void) ) ;   4570                                         Bool (*expensive_sanity_check)(void) ) ;
4571 extern void vgPlain_needs_var_info(void) ;   4571 extern void vgPlain_needs_var_info(void) ;
4572 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,   4572 extern void vgPlain_needs_malloc_replacement(void *(*pmalloc)(ThreadId tid ,
4573                                                               SizeT n ) ,   4573                                                               SizeT n ) ,
4574                                              void *(*p__builtin_new)(ThreadId tid ,   4574                                              void *(*p__builtin_new)(ThreadId tid ,
4575                                                                      SizeT n ) ,   4575                                                                      SizeT n ) ,
4576                                              void *(*p__builtin_vec_new)(ThreadId tid ,   4576                                              void *(*p__builtin_vec_new)(ThreadId tid ,
4577                                                                          SizeT n ) ,   4577                                                                          SizeT n ) ,
4578                                              void *(*pmemalign)(ThreadId tid ,   4578                                              void *(*pmemalign)(ThreadId tid ,
4579                                                                 SizeT align ,   4579                                                                 SizeT align ,
4580                                                                 SizeT n ) ,   4580                                                                 SizeT n ) ,
4581                                              void *(*pcalloc)(ThreadId tid ,   4581                                              void *(*pcalloc)(ThreadId tid ,
4582                                                               SizeT nmemb ,   4582                                                               SizeT nmemb ,
4583                                                               SizeT size1 ) ,   4583                                                               SizeT size1 ) ,
4584                                              void (*pfree)(ThreadId tid ,   4584                                              void (*pfree)(ThreadId tid ,
4585                                                            void *p ) ,   4585                                                            void *p ) ,
4586                                              void (*p__builtin_delete)(ThreadId tid ,   4586                                              void (*p__builtin_delete)(ThreadId tid ,
4587                                                                        void *p ) ,   4587                                                                        void *p ) ,
4588                                              void (*p__builtin_vec_delete)(ThreadId tid ,   4588                                              void (*p__builtin_vec_delete)(ThreadId tid ,
4589                                                                            void *p ) ,   4589                                                                            void *p ) ,
4590                                              void *(*prealloc)(ThreadId tid ,   4590                                              void *(*prealloc)(ThreadId tid ,
4591                                                                void *p ,   4591                                                                void *p ,
4592                                                                SizeT new_size ) ,   4592                                                                SizeT new_size ) ,
4593                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,   4593                                              SizeT (*pmalloc_usable_size)(ThreadId tid ,
4594                                                                           void *p ) ,   4594                                                                           void *p ) ,
4595                                              SizeT client_malloc_redzone_szB ) ;   4595                                              SizeT client_malloc_redzone_szB ) ;
4596 extern void vgPlain_needs_xml_output(void) ;   4596 extern void vgPlain_needs_xml_output(void) ;
4597 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;   4597 extern void vgPlain_needs_final_IR_tidy_pass(IRSB *(*final_tidy)(IRSB * ) ) ;
4598 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,   4598 extern void vgPlain_track_new_mem_startup(void (*f)(Addr a , SizeT len ,
4599                                                     Bool rr , Bool ww ,   4599                                                     Bool rr , Bool ww ,
4600                                                     Bool xx , ULong di_handle ) ) ;   4600                                                     Bool xx , ULong di_handle ) ) ;
4601 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,   4601 extern void vgPlain_track_new_mem_stack_signal(void (*f)(Addr a , SizeT len ,
4602                                                          ThreadId tid ) ) ;   4602                                                          ThreadId tid ) ) ;
4603 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,   4603 extern void vgPlain_track_new_mem_brk(void (*f)(Addr a , SizeT len ,
4604                                                 ThreadId tid ) ) ;   4604                                                 ThreadId tid ) ) ;
4605 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,   4605 extern void vgPlain_track_new_mem_mmap(void (*f)(Addr a , SizeT len , Bool rr ,
4606                                                  Bool ww , Bool xx ,   4606                                                  Bool ww , Bool xx ,
4607                                                  ULong di_handle ) ) ;   4607                                                  ULong di_handle ) ) ;
4608 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,   4608 extern void vgPlain_track_copy_mem_remap(void (*f)(Addr from , Addr to ,
4609                                                    SizeT len ) ) ;   4609                                                    SizeT len ) ) ;
4610 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,   4610 extern void vgPlain_track_change_mem_mprotect(void (*f)(Addr a , SizeT len ,
4611                                                         Bool rr , Bool ww ,   4611                                                         Bool rr , Bool ww ,
4612                                                         Bool xx ) ) ;   4612                                                         Bool xx ) ) ;
4613 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;   4613 extern void vgPlain_track_die_mem_stack_signal(void (*f)(Addr a , SizeT len ) ) ;
4614 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;   4614 extern void vgPlain_track_die_mem_brk(void (*f)(Addr a , SizeT len ) ) ;
4615 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;   4615 extern void vgPlain_track_die_mem_munmap(void (*f)(Addr a , SizeT len ) ) ;
4616 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4616 extern void vgPlain_track_new_mem_stack_4_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4617                                                                                              UInt ecu ) ) ;   4617                                                                                              UInt ecu ) ) ;
4618 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4618 extern void vgPlain_track_new_mem_stack_8_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4619                                                                                              UInt ecu ) ) ;   4619                                                                                              UInt ecu ) ) ;
4620 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4620 extern void vgPlain_track_new_mem_stack_12_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4621                                                                                               UInt ecu ) ) ;   4621                                                                                               UInt ecu ) ) ;
4622 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4622 extern void vgPlain_track_new_mem_stack_16_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4623                                                                                               UInt ecu ) ) ;   4623                                                                                               UInt ecu ) ) ;
4624 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4624 extern void vgPlain_track_new_mem_stack_32_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4625                                                                                               UInt ecu ) ) ;   4625                                                                                               UInt ecu ) ) ;
4626 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4626 extern void vgPlain_track_new_mem_stack_112_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4627                                                                                                UInt ecu ) ) ;   4627                                                                                                UInt ecu ) ) ;
4628 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4628 extern void vgPlain_track_new_mem_stack_128_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4629                                                                                                UInt ecu ) ) ;   4629                                                                                                UInt ecu ) ) ;
4630 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4630 extern void vgPlain_track_new_mem_stack_144_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4631                                                                                                UInt ecu ) ) ;   4631                                                                                                UInt ecu ) ) ;
4632 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,   4632 extern void vgPlain_track_new_mem_stack_160_w_ECU(void ( __attribute__((__regparm__(2))) (*f))(Addr new_ESP ,
4633                                                                                                UInt ecu ) ) ;   4633                                                                                                UInt ecu ) ) ;
4634 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,   4634 extern void vgPlain_track_new_mem_stack_w_ECU(void (*f)(Addr a , SizeT len ,
4635                                                         UInt ecu ) ) ;   4635                                                         UInt ecu ) ) ;
4636 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4636 extern void vgPlain_track_new_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4637 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4637 extern void vgPlain_track_new_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4638 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4638 extern void vgPlain_track_new_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4639 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4639 extern void vgPlain_track_new_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4640 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4640 extern void vgPlain_track_new_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4641 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4641 extern void vgPlain_track_new_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4642 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4642 extern void vgPlain_track_new_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4643 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4643 extern void vgPlain_track_new_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4644 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;   4644 extern void vgPlain_track_new_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr new_ESP ) ) ;
4645 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4645 extern void vgPlain_track_new_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4646 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4646 extern void vgPlain_track_die_mem_stack_4(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4647 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4647 extern void vgPlain_track_die_mem_stack_8(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4648 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4648 extern void vgPlain_track_die_mem_stack_12(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4649 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4649 extern void vgPlain_track_die_mem_stack_16(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4650 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4650 extern void vgPlain_track_die_mem_stack_32(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4651 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4651 extern void vgPlain_track_die_mem_stack_112(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4652 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4652 extern void vgPlain_track_die_mem_stack_128(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4653 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4653 extern void vgPlain_track_die_mem_stack_144(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4654 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;   4654 extern void vgPlain_track_die_mem_stack_160(void ( __attribute__((__regparm__(1))) (*f))(Addr die_ESP ) ) ;
4655 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4655 extern void vgPlain_track_die_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4656 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;   4656 extern void vgPlain_track_ban_mem_stack(void (*f)(Addr a , SizeT len ) ) ;
4657 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,   4657 extern void vgPlain_track_pre_mem_read(void (*f)(CorePart part , ThreadId tid ,
4658                                                  Char *s , Addr a , SizeT size ) ) ;   4658                                                  Char *s , Addr a , SizeT size ) ) ;
4659 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,   4659 extern void vgPlain_track_pre_mem_read_asciiz(void (*f)(CorePart part ,
4660                                                         ThreadId tid , Char *s ,   4660                                                         ThreadId tid , Char *s ,
4661                                                         Addr a ) ) ;   4661                                                         Addr a ) ) ;
4662 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,   4662 extern void vgPlain_track_pre_mem_write(void (*f)(CorePart part , ThreadId tid ,
4663                                                   Char *s , Addr a , SizeT size ) ) ;   4663                                                   Char *s , Addr a , SizeT size ) ) ;
4664 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,   4664 extern void vgPlain_track_post_mem_write(void (*f)(CorePart part ,
4665                                                    ThreadId tid , Addr a ,   4665                                                    ThreadId tid , Addr a ,
4666                                                    SizeT size ) ) ;   4666                                                    SizeT size ) ) ;
4667 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,   4667 extern void vgPlain_track_pre_reg_read(void (*f)(CorePart part , ThreadId tid ,
4668                                                  Char *s ,   4668                                                  Char *s ,
4669                                                  PtrdiffT guest_state_offset ,   4669                                                  PtrdiffT guest_state_offset ,
4670                                                  SizeT size ) ) ;   4670                                                  SizeT size ) ) ;
4671 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,   4671 extern void vgPlain_track_post_reg_write(void (*f)(CorePart part ,
4672                                                    ThreadId tid ,   4672                                                    ThreadId tid ,
4673                                                    PtrdiffT guest_state_offset ,   4673                                                    PtrdiffT guest_state_offset ,
4674                                                    SizeT size ) ) ;   4674                                                    SizeT size ) ) ;
4675 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,   4675 extern void vgPlain_track_post_reg_write_clientcall_return(void (*f)(ThreadId tid ,
4676                                                                      PtrdiffT guest_state_offset ,   4676                                                                      PtrdiffT guest_state_offset ,
4677                                                                      SizeT size ,   4677                                                                      SizeT size ,
4678                                                                      Addr f ) ) ;   4678                                                                      Addr f ) ) ;
4679 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,   4679 extern void vgPlain_track_start_client_code(void (*f)(ThreadId tid ,
4680                                                       ULong blocks_dispatched ) ) ;   4680                                                       ULong blocks_dispatched ) ) ;
4681 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,   4681 extern void vgPlain_track_stop_client_code(void (*f)(ThreadId tid ,
4682                                                      ULong blocks_dispatched ) ) ;   4682                                                      ULong blocks_dispatched ) ) ;
4683 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,   4683 extern void vgPlain_track_pre_thread_ll_create(void (*f)(ThreadId tid ,
4684                                                          ThreadId child ) ) ;   4684                                                          ThreadId child ) ) ;
4685 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;   4685 extern void vgPlain_track_pre_thread_first_insn(void (*f)(ThreadId tid ) ) ;
4686 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;   4686 extern void vgPlain_track_pre_thread_ll_exit(void (*f)(ThreadId tid ) ) ;
4687 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,   4687 extern void vgPlain_track_pre_deliver_signal(void (*f)(ThreadId tid ,
4688                                                        Int sigNo ,   4688                                                        Int sigNo ,
4689                                                        Bool alt_stack ) ) ;   4689                                                        Bool alt_stack ) ) ;
4690 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,   4690 extern void vgPlain_track_post_deliver_signal(void (*f)(ThreadId tid ,
4691                                                         Int sigNo ) ) ;   4691                                                         Int sigNo ) ) ;
4692 extern VgDetails vgPlain_details ;   4692 extern VgDetails vgPlain_details ;
4693 extern VgNeeds vgPlain_needs ;   4693 extern VgNeeds vgPlain_needs ;
4694 extern VgToolInterface vgPlain_tdict ;   4694 extern VgToolInterface vgPlain_tdict ;
4695 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;   4695 extern Bool vgPlain_sanity_check_needs(Char **failmsg ) ;
4696 extern SysRes vgPlain_pre_exec_check(HChar const   *exe_name , Int *out_fd ,   4696 extern SysRes vgPlain_pre_exec_check(HChar const   *exe_name , Int *out_fd ,
4697                                      Bool allow_setuid ) ;   4697                                      Bool allow_setuid ) ;
4698 extern Int vgPlain_do_exec(HChar const   *exe , ExeInfo *info ) ;   4698 extern Int vgPlain_do_exec(HChar const   *exe , ExeInfo *info ) ;
4699 extern SyscallTableEntry *vgModuleLocal_get_linux_syscall_entry(UInt sysno ) ;   4699 extern SyscallTableEntry *vgModuleLocal_get_linux_syscall_entry(UInt sysno ) ;
4700 __inline static UWord getRES(SyscallStatus *st )   4700 __inline static UWord getRES(SyscallStatus *st )
4701 {   4701 {
4702   long tmp ;   4702   long tmp ;
4703   Bool tmp___0 ;   4703   Bool tmp___0 ;
4704   int tmp___1 ;   4704   int tmp___1 ;
4705   long tmp___2 ;   4705   long tmp___2 ;
4706   UWord tmp___3 ;   4706   UWord tmp___3 ;
4707     4707  
4708   {   4708   {
4709   tmp = __builtin_expect((long )(! (! ((unsigned int )st->what == 1U))), 1L);   4709   tmp = __builtin_expect((long )(! (! ((unsigned int )st->what == 1U))), 1L);
4710   if (tmp) {   4710   if (tmp) {
4711     4711  
4712   } else {   4712   } else {
4713     vgPlain_assert_fail((Bool )1, (Char const   *)"st->what == SsComplete",   4713     vgPlain_assert_fail((Bool )1, (Char const   *)"st->what == SsComplete",
4714                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 305,   4714                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 305,
4715                         (Char const   *)"getRES", "");   4715                         (Char const   *)"getRES", "");
4716   }   4716   }
4717   tmp___0 = sr_isError(st->sres);   4717   tmp___0 = sr_isError(st->sres);
4718   if (tmp___0) {   4718   if (tmp___0) {
4719     tmp___1 = 0;   4719     tmp___1 = 0;
4720   } else {   4720   } else {
4721     tmp___1 = 1;   4721     tmp___1 = 1;
4722   }   4722   }
4723   tmp___2 = __builtin_expect((long )tmp___1, 1L);   4723   tmp___2 = __builtin_expect((long )tmp___1, 1L);
4724   if (tmp___2) {   4724   if (tmp___2) {
4725     4725  
4726   } else {   4726   } else {
4727     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(st->sres)",   4727     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(st->sres)",
4728                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 306,   4728                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 306,
4729                         (Char const   *)"getRES", "");   4729                         (Char const   *)"getRES", "");
4730   }   4730   }
4731   tmp___3 = sr_Res(st->sres);   4731   tmp___3 = sr_Res(st->sres);
4732   return (tmp___3);   4732   return (tmp___3);
4733 }   4733 }
4734 }   4734 }
4735 __inline static UWord getRESHI(SyscallStatus *st )   4735 __inline static UWord getRESHI(SyscallStatus *st )
4736 {   4736 {
4737   long tmp ;   4737   long tmp ;
4738   Bool tmp___0 ;   4738   Bool tmp___0 ;
4739   int tmp___1 ;   4739   int tmp___1 ;
4740   long tmp___2 ;   4740   long tmp___2 ;
4741   UWord tmp___3 ;   4741   UWord tmp___3 ;
4742     4742  
4743   {   4743   {
4744   tmp = __builtin_expect((long )(! (! ((unsigned int )st->what == 1U))), 1L);   4744   tmp = __builtin_expect((long )(! (! ((unsigned int )st->what == 1U))), 1L);
4745   if (tmp) {   4745   if (tmp) {
4746     4746  
4747   } else {   4747   } else {
4748     vgPlain_assert_fail((Bool )1, (Char const   *)"st->what == SsComplete",   4748     vgPlain_assert_fail((Bool )1, (Char const   *)"st->what == SsComplete",
4749                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 311,   4749                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 311,
4750                         (Char const   *)"getRESHI", "");   4750                         (Char const   *)"getRESHI", "");
4751   }   4751   }
4752   tmp___0 = sr_isError(st->sres);   4752   tmp___0 = sr_isError(st->sres);
4753   if (tmp___0) {   4753   if (tmp___0) {
4754     tmp___1 = 0;   4754     tmp___1 = 0;
4755   } else {   4755   } else {
4756     tmp___1 = 1;   4756     tmp___1 = 1;
4757   }   4757   }
4758   tmp___2 = __builtin_expect((long )tmp___1, 1L);   4758   tmp___2 = __builtin_expect((long )tmp___1, 1L);
4759   if (tmp___2) {   4759   if (tmp___2) {
4760     4760  
4761   } else {   4761   } else {
4762     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(st->sres)",   4762     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(st->sres)",
4763                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 312,   4763                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 312,
4764                         (Char const   *)"getRESHI", "");   4764                         (Char const   *)"getRESHI", "");
4765   }   4765   }
4766   tmp___3 = sr_ResHI(st->sres);   4766   tmp___3 = sr_ResHI(st->sres);
4767   return (tmp___3);   4767   return (tmp___3);
4768 }   4768 }
4769 }   4769 }
4770 __inline static UWord getERR(SyscallStatus *st )   4770 __inline static UWord getERR(SyscallStatus *st )
4771 {   4771 {
4772   long tmp ;   4772   long tmp ;
4773   Bool tmp___0 ;   4773   Bool tmp___0 ;
4774   int tmp___1 ;   4774   int tmp___1 ;
4775   long tmp___2 ;   4775   long tmp___2 ;
4776   UWord tmp___3 ;   4776   UWord tmp___3 ;
4777     4777  
4778   {   4778   {
4779   tmp = __builtin_expect((long )(! (! ((unsigned int )st->what == 1U))), 1L);   4779   tmp = __builtin_expect((long )(! (! ((unsigned int )st->what == 1U))), 1L);
4780   if (tmp) {   4780   if (tmp) {
4781     4781  
4782   } else {   4782   } else {
4783     vgPlain_assert_fail((Bool )1, (Char const   *)"st->what == SsComplete",   4783     vgPlain_assert_fail((Bool )1, (Char const   *)"st->what == SsComplete",
4784                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 317,   4784                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 317,
4785                         (Char const   *)"getERR", "");   4785                         (Char const   *)"getERR", "");
4786   }   4786   }
4787   tmp___0 = sr_isError(st->sres);   4787   tmp___0 = sr_isError(st->sres);
4788   if (tmp___0) {   4788   if (tmp___0) {
4789     tmp___1 = 1;   4789     tmp___1 = 1;
4790   } else {   4790   } else {
4791     tmp___1 = 0;   4791     tmp___1 = 0;
4792   }   4792   }
4793   tmp___2 = __builtin_expect((long )tmp___1, 1L);   4793   tmp___2 = __builtin_expect((long )tmp___1, 1L);
4794   if (tmp___2) {   4794   if (tmp___2) {
4795     4795  
4796   } else {   4796   } else {
4797     vgPlain_assert_fail((Bool )1, (Char const   *)"sr_isError(st->sres)",   4797     vgPlain_assert_fail((Bool )1, (Char const   *)"sr_isError(st->sres)",
4798                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 318,   4798                         (Char const   *)"m_syswrap/priv_types_n_macros.h", 318,
4799                         (Char const   *)"getERR", "");   4799                         (Char const   *)"getERR", "");
4800   }   4800   }
4801   tmp___3 = sr_Err(st->sres);   4801   tmp___3 = sr_Err(st->sres);
4802   return (tmp___3);   4802   return (tmp___3);
4803 }   4803 }
4804 }   4804 }
4805 Bool vgModuleLocal_valid_client_addr(Addr start , SizeT size , ThreadId tid ,   4805 Bool vgModuleLocal_valid_client_addr(Addr start , SizeT size , ThreadId tid ,
4806                                      Char const   *syscallname ) ;   4806                                      Char const   *syscallname ) ;
4807 Bool vgModuleLocal_safe_to_deref(void *start , SizeT size ) ;   4807 Bool vgModuleLocal_safe_to_deref(void *start , SizeT size ) ;
4808 Bool vgModuleLocal_client_signal_OK(Int sigNo ) ;   4808 Bool vgModuleLocal_client_signal_OK(Int sigNo ) ;
4809 Bool vgModuleLocal_fd_allowed(Int fd , Char const   *syscallname ,   4809 Bool vgModuleLocal_fd_allowed(Int fd , Char const   *syscallname ,
4810                               ThreadId tid , Bool isNewFd ) ;   4810                               ThreadId tid , Bool isNewFd ) ;
4811 void vgModuleLocal_record_fd_open_named(ThreadId tid , Int fd ) ;   4811 void vgModuleLocal_record_fd_open_named(ThreadId tid , Int fd ) ;
4812 void vgModuleLocal_record_fd_open_nameless(ThreadId tid , Int fd ) ;   4812 void vgModuleLocal_record_fd_open_nameless(ThreadId tid , Int fd ) ;
4813 void vgModuleLocal_record_fd_open_with_given_name(ThreadId tid , Int fd ,   4813 void vgModuleLocal_record_fd_open_with_given_name(ThreadId tid , Int fd ,
4814                                                   char *pathname ) ;   4814                                                   char *pathname ) ;
4815 Bool vgModuleLocal_do_sigkill(Int pid , Int tgid ) ;   4815 Bool vgModuleLocal_do_sigkill(Int pid , Int tgid ) ;
4816 void vgModuleLocal_notify_core_and_tool_of_mmap(Addr a , SizeT len , UInt prot ,   4816 void vgModuleLocal_notify_core_and_tool_of_mmap(Addr a , SizeT len , UInt prot ,
4817                                                 UInt flags , Int fd ,   4817                                                 UInt flags , Int fd ,
4818                                                 Off64T offset ) ;   4818                                                 Off64T offset ) ;
4819 void vgModuleLocal_notify_core_and_tool_of_munmap(Addr a , SizeT len ) ;   4819 void vgModuleLocal_notify_core_and_tool_of_munmap(Addr a , SizeT len ) ;
4820 void vgModuleLocal_notify_core_and_tool_of_mprotect(Addr a , SizeT len ,   4820 void vgModuleLocal_notify_core_and_tool_of_mprotect(Addr a , SizeT len ,
4821                                                     Int prot ) ;   4821                                                     Int prot ) ;
4822 void vgModuleLocal_buf_and_len_pre_check(ThreadId tid , Addr buf_p ,   4822 void vgModuleLocal_buf_and_len_pre_check(ThreadId tid , Addr buf_p ,
4823                                          Addr buflen_p , Char *buf_s ,   4823                                          Addr buflen_p , Char *buf_s ,
4824                                          Char *buflen_s ) ;   4824                                          Char *buflen_s ) ;
4825 void vgModuleLocal_buf_and_len_post_check(ThreadId tid , SysRes res ,   4825 void vgModuleLocal_buf_and_len_post_check(ThreadId tid , SysRes res ,
4826                                           Addr buf_p , Addr buflen_p , Char *s ) ;   4826                                           Addr buf_p , Addr buflen_p , Char *s ) ;
4827 void vgModuleLocal_PRE_unknown_ioctl(ThreadId tid , UWord request , UWord arg ) ;   4827 void vgModuleLocal_PRE_unknown_ioctl(ThreadId tid , UWord request , UWord arg ) ;
4828 void vgModuleLocal_POST_unknown_ioctl(ThreadId tid , UInt res , UWord request ,   4828 void vgModuleLocal_POST_unknown_ioctl(ThreadId tid , UInt res , UWord request ,
4829                                       UWord arg ) ;   4829                                       UWord arg ) ;
4830 void vgSysWrap_generic_sys_ni_syscall_before(ThreadId tid ,   4830 void vgSysWrap_generic_sys_ni_syscall_before(ThreadId tid ,
4831                                              SyscallArgLayout *layout ,   4831                                              SyscallArgLayout *layout ,
4832                                              SyscallArgs *arrghs ,   4832                                              SyscallArgs *arrghs ,
4833                                              SyscallStatus *status ,   4833                                              SyscallStatus *status ,
4834                                              UWord *flags ) ;   4834                                              UWord *flags ) ;
4835 extern void vgSysWrap_generic_sys_ni_syscall_after(ThreadId tid ,   4835 extern void vgSysWrap_generic_sys_ni_syscall_after(ThreadId tid ,
4836                                                    SyscallArgs *arrghs ,   4836                                                    SyscallArgs *arrghs ,
4837                                                    SyscallStatus *status ) ;   4837                                                    SyscallStatus *status ) ;
4838 void vgSysWrap_generic_sys_exit_before(ThreadId tid , SyscallArgLayout *layout ,   4838 void vgSysWrap_generic_sys_exit_before(ThreadId tid , SyscallArgLayout *layout ,
4839                                        SyscallArgs *arrghs ,   4839                                        SyscallArgs *arrghs ,
4840                                        SyscallStatus *status , UWord *flags ) ;   4840                                        SyscallStatus *status , UWord *flags ) ;
4841 extern void vgSysWrap_generic_sys_exit_after(ThreadId tid ,   4841 extern void vgSysWrap_generic_sys_exit_after(ThreadId tid ,
4842                                              SyscallArgs *arrghs ,   4842                                              SyscallArgs *arrghs ,
4843                                              SyscallStatus *status ) ;   4843                                              SyscallStatus *status ) ;
4844 void vgSysWrap_generic_sys_fork_before(ThreadId tid , SyscallArgLayout *layout ,   4844 void vgSysWrap_generic_sys_fork_before(ThreadId tid , SyscallArgLayout *layout ,
4845                                        SyscallArgs *arrghs ,   4845                                        SyscallArgs *arrghs ,
4846                                        SyscallStatus *status , UWord *flags ) ;   4846                                        SyscallStatus *status , UWord *flags ) ;
4847 extern void vgSysWrap_generic_sys_fork_after(ThreadId tid ,   4847 extern void vgSysWrap_generic_sys_fork_after(ThreadId tid ,
4848                                              SyscallArgs *arrghs ,   4848                                              SyscallArgs *arrghs ,
4849                                              SyscallStatus *status ) ;   4849                                              SyscallStatus *status ) ;
4850 void vgSysWrap_generic_sys_read_before(ThreadId tid , SyscallArgLayout *layout ,   4850 void vgSysWrap_generic_sys_read_before(ThreadId tid , SyscallArgLayout *layout ,
4851                                        SyscallArgs *arrghs ,   4851                                        SyscallArgs *arrghs ,
4852                                        SyscallStatus *status , UWord *flags ) ;   4852                                        SyscallStatus *status , UWord *flags ) ;
4853 void vgSysWrap_generic_sys_read_after(ThreadId tid , SyscallArgs *arrghs ,   4853 void vgSysWrap_generic_sys_read_after(ThreadId tid , SyscallArgs *arrghs ,
4854                                       SyscallStatus *status ) ;   4854                                       SyscallStatus *status ) ;
4855 void vgSysWrap_generic_sys_write_before(ThreadId tid ,   4855 void vgSysWrap_generic_sys_write_before(ThreadId tid ,
4856                                         SyscallArgLayout *layout ,   4856                                         SyscallArgLayout *layout ,
4857                                         SyscallArgs *arrghs ,   4857                                         SyscallArgs *arrghs ,
4858                                         SyscallStatus *status , UWord *flags ) ;   4858                                         SyscallStatus *status , UWord *flags ) ;
4859 extern void vgSysWrap_generic_sys_write_after(ThreadId tid ,   4859 extern void vgSysWrap_generic_sys_write_after(ThreadId tid ,
4860                                               SyscallArgs *arrghs ,   4860                                               SyscallArgs *arrghs ,
4861                                               SyscallStatus *status ) ;   4861                                               SyscallStatus *status ) ;
4862 void vgSysWrap_generic_sys_open_before(ThreadId tid , SyscallArgLayout *layout ,   4862 void vgSysWrap_generic_sys_open_before(ThreadId tid , SyscallArgLayout *layout ,
4863                                        SyscallArgs *arrghs ,   4863                                        SyscallArgs *arrghs ,
4864                                        SyscallStatus *status , UWord *flags ) ;   4864                                        SyscallStatus *status , UWord *flags ) ;
4865 void vgSysWrap_generic_sys_open_after(ThreadId tid , SyscallArgs *arrghs ,   4865 void vgSysWrap_generic_sys_open_after(ThreadId tid , SyscallArgs *arrghs ,
4866                                       SyscallStatus *status ) ;   4866                                       SyscallStatus *status ) ;
4867 void vgSysWrap_generic_sys_close_before(ThreadId tid ,   4867 void vgSysWrap_generic_sys_close_before(ThreadId tid ,
4868                                         SyscallArgLayout *layout ,   4868                                         SyscallArgLayout *layout ,
4869                                         SyscallArgs *arrghs ,   4869                                         SyscallArgs *arrghs ,
4870                                         SyscallStatus *status , UWord *flags ) ;   4870                                         SyscallStatus *status , UWord *flags ) ;
4871 void vgSysWrap_generic_sys_close_after(ThreadId tid , SyscallArgs *arrghs ,   4871 void vgSysWrap_generic_sys_close_after(ThreadId tid , SyscallArgs *arrghs ,
4872                                        SyscallStatus *status ) ;   4872                                        SyscallStatus *status ) ;
4873 void vgSysWrap_generic_sys_waitpid_before(ThreadId tid ,   4873 void vgSysWrap_generic_sys_waitpid_before(ThreadId tid ,
4874                                           SyscallArgLayout *layout ,   4874                                           SyscallArgLayout *layout ,
4875                                           SyscallArgs *arrghs ,   4875                                           SyscallArgs *arrghs ,
4876                                           SyscallStatus *status , UWord *flags ) ;   4876                                           SyscallStatus *status , UWord *flags ) ;
4877 void vgSysWrap_generic_sys_waitpid_after(ThreadId tid , SyscallArgs *arrghs ,   4877 void vgSysWrap_generic_sys_waitpid_after(ThreadId tid , SyscallArgs *arrghs ,
4878                                          SyscallStatus *status ) ;   4878                                          SyscallStatus *status ) ;
4879 void vgSysWrap_generic_sys_creat_before(ThreadId tid ,   4879 void vgSysWrap_generic_sys_creat_before(ThreadId tid ,
4880                                         SyscallArgLayout *layout ,   4880                                         SyscallArgLayout *layout ,
4881                                         SyscallArgs *arrghs ,   4881                                         SyscallArgs *arrghs ,
4882                                         SyscallStatus *status , UWord *flags ) ;   4882                                         SyscallStatus *status , UWord *flags ) ;
4883 void vgSysWrap_generic_sys_creat_after(ThreadId tid , SyscallArgs *arrghs ,   4883 void vgSysWrap_generic_sys_creat_after(ThreadId tid , SyscallArgs *arrghs ,
4884                                        SyscallStatus *status ) ;   4884                                        SyscallStatus *status ) ;
4885 void vgSysWrap_generic_sys_link_before(ThreadId tid , SyscallArgLayout *layout ,   4885 void vgSysWrap_generic_sys_link_before(ThreadId tid , SyscallArgLayout *layout ,
4886                                        SyscallArgs *arrghs ,   4886                                        SyscallArgs *arrghs ,
4887                                        SyscallStatus *status , UWord *flags ) ;   4887                                        SyscallStatus *status , UWord *flags ) ;
4888 extern void vgSysWrap_generic_sys_link_after(ThreadId tid ,   4888 extern void vgSysWrap_generic_sys_link_after(ThreadId tid ,
4889                                              SyscallArgs *arrghs ,   4889                                              SyscallArgs *arrghs ,
4890                                              SyscallStatus *status ) ;   4890                                              SyscallStatus *status ) ;
4891 void vgSysWrap_generic_sys_unlink_before(ThreadId tid ,   4891 void vgSysWrap_generic_sys_unlink_before(ThreadId tid ,
4892                                          SyscallArgLayout *layout ,   4892                                          SyscallArgLayout *layout ,
4893                                          SyscallArgs *arrghs ,   4893                                          SyscallArgs *arrghs ,
4894                                          SyscallStatus *status , UWord *flags ) ;   4894                                          SyscallStatus *status , UWord *flags ) ;
4895 extern void vgSysWrap_generic_sys_unlink_after(ThreadId tid ,   4895 extern void vgSysWrap_generic_sys_unlink_after(ThreadId tid ,
4896                                                SyscallArgs *arrghs ,   4896                                                SyscallArgs *arrghs ,
4897                                                SyscallStatus *status ) ;   4897                                                SyscallStatus *status ) ;
4898 void vgSysWrap_generic_sys_execve_before(ThreadId tid ,   4898 void vgSysWrap_generic_sys_execve_before(ThreadId tid ,
4899                                          SyscallArgLayout *layout ,   4899                                          SyscallArgLayout *layout ,
4900                                          SyscallArgs *arrghs ,   4900                                          SyscallArgs *arrghs ,
4901                                          SyscallStatus *status , UWord *flags ) ;   4901                                          SyscallStatus *status , UWord *flags ) ;
4902 extern void vgSysWrap_generic_sys_execve_after(ThreadId tid ,   4902 extern void vgSysWrap_generic_sys_execve_after(ThreadId tid ,
4903                                                SyscallArgs *arrghs ,   4903                                                SyscallArgs *arrghs ,
4904                                                SyscallStatus *status ) ;   4904                                                SyscallStatus *status ) ;
4905 void vgSysWrap_generic_sys_chdir_before(ThreadId tid ,   4905 void vgSysWrap_generic_sys_chdir_before(ThreadId tid ,
4906                                         SyscallArgLayout *layout ,   4906                                         SyscallArgLayout *layout ,
4907                                         SyscallArgs *arrghs ,   4907                                         SyscallArgs *arrghs ,
4908                                         SyscallStatus *status , UWord *flags ) ;   4908                                         SyscallStatus *status , UWord *flags ) ;
4909 extern void vgSysWrap_generic_sys_chdir_after(ThreadId tid ,   4909 extern void vgSysWrap_generic_sys_chdir_after(ThreadId tid ,
4910                                               SyscallArgs *arrghs ,   4910                                               SyscallArgs *arrghs ,
4911                                               SyscallStatus *status ) ;   4911                                               SyscallStatus *status ) ;
4912 void vgSysWrap_generic_sys_time_before(ThreadId tid , SyscallArgLayout *layout ,   4912 void vgSysWrap_generic_sys_time_before(ThreadId tid , SyscallArgLayout *layout ,
4913                                        SyscallArgs *arrghs ,   4913                                        SyscallArgs *arrghs ,
4914                                        SyscallStatus *status , UWord *flags ) ;   4914                                        SyscallStatus *status , UWord *flags ) ;
4915 void vgSysWrap_generic_sys_time_after(ThreadId tid , SyscallArgs *arrghs ,   4915 void vgSysWrap_generic_sys_time_after(ThreadId tid , SyscallArgs *arrghs ,
4916                                       SyscallStatus *status ) ;   4916                                       SyscallStatus *status ) ;
4917 void vgSysWrap_generic_sys_mknod_before(ThreadId tid ,   4917 void vgSysWrap_generic_sys_mknod_before(ThreadId tid ,
4918                                         SyscallArgLayout *layout ,   4918                                         SyscallArgLayout *layout ,
4919                                         SyscallArgs *arrghs ,   4919                                         SyscallArgs *arrghs ,
4920                                         SyscallStatus *status , UWord *flags ) ;   4920                                         SyscallStatus *status , UWord *flags ) ;
4921 extern void vgSysWrap_generic_sys_mknod_after(ThreadId tid ,   4921 extern void vgSysWrap_generic_sys_mknod_after(ThreadId tid ,
4922                                               SyscallArgs *arrghs ,   4922                                               SyscallArgs *arrghs ,
4923                                               SyscallStatus *status ) ;   4923                                               SyscallStatus *status ) ;
4924 void vgSysWrap_generic_sys_chmod_before(ThreadId tid ,   4924 void vgSysWrap_generic_sys_chmod_before(ThreadId tid ,
4925                                         SyscallArgLayout *layout ,   4925                                         SyscallArgLayout *layout ,
4926                                         SyscallArgs *arrghs ,   4926                                         SyscallArgs *arrghs ,
4927                                         SyscallStatus *status , UWord *flags ) ;   4927                                         SyscallStatus *status , UWord *flags ) ;
4928 extern void vgSysWrap_generic_sys_chmod_after(ThreadId tid ,   4928 extern void vgSysWrap_generic_sys_chmod_after(ThreadId tid ,
4929                                               SyscallArgs *arrghs ,   4929                                               SyscallArgs *arrghs ,
4930                                               SyscallStatus *status ) ;   4930                                               SyscallStatus *status ) ;
4931 void vgSysWrap_generic_sys_getpid_before(ThreadId tid ,   4931 void vgSysWrap_generic_sys_getpid_before(ThreadId tid ,
4932                                          SyscallArgLayout *layout ,   4932                                          SyscallArgLayout *layout ,
4933                                          SyscallArgs *arrghs ,   4933                                          SyscallArgs *arrghs ,
4934                                          SyscallStatus *status , UWord *flags ) ;   4934                                          SyscallStatus *status , UWord *flags ) ;
4935 extern void vgSysWrap_generic_sys_getpid_after(ThreadId tid ,   4935 extern void vgSysWrap_generic_sys_getpid_after(ThreadId tid ,
4936                                                SyscallArgs *arrghs ,   4936                                                SyscallArgs *arrghs ,
4937                                                SyscallStatus *status ) ;   4937                                                SyscallStatus *status ) ;
4938 void vgSysWrap_generic_sys_alarm_before(ThreadId tid ,   4938 void vgSysWrap_generic_sys_alarm_before(ThreadId tid ,
4939                                         SyscallArgLayout *layout ,   4939                                         SyscallArgLayout *layout ,
4940                                         SyscallArgs *arrghs ,   4940                                         SyscallArgs *arrghs ,
4941                                         SyscallStatus *status , UWord *flags ) ;   4941                                         SyscallStatus *status , UWord *flags ) ;
4942 extern void vgSysWrap_generic_sys_alarm_after(ThreadId tid ,   4942 extern void vgSysWrap_generic_sys_alarm_after(ThreadId tid ,
4943                                               SyscallArgs *arrghs ,   4943                                               SyscallArgs *arrghs ,
4944                                               SyscallStatus *status ) ;   4944                                               SyscallStatus *status ) ;
4945 void vgSysWrap_generic_sys_pause_before(ThreadId tid ,   4945 void vgSysWrap_generic_sys_pause_before(ThreadId tid ,
4946                                         SyscallArgLayout *layout ,   4946                                         SyscallArgLayout *layout ,
4947                                         SyscallArgs *arrghs ,   4947                                         SyscallArgs *arrghs ,
4948                                         SyscallStatus *status , UWord *flags ) ;   4948                                         SyscallStatus *status , UWord *flags ) ;
4949 extern void vgSysWrap_generic_sys_pause_after(ThreadId tid ,   4949 extern void vgSysWrap_generic_sys_pause_after(ThreadId tid ,
4950                                               SyscallArgs *arrghs ,   4950                                               SyscallArgs *arrghs ,
4951                                               SyscallStatus *status ) ;   4951                                               SyscallStatus *status ) ;
4952 void vgSysWrap_generic_sys_access_before(ThreadId tid ,   4952 void vgSysWrap_generic_sys_access_before(ThreadId tid ,
4953                                          SyscallArgLayout *layout ,   4953                                          SyscallArgLayout *layout ,
4954                                          SyscallArgs *arrghs ,   4954                                          SyscallArgs *arrghs ,
4955                                          SyscallStatus *status , UWord *flags ) ;   4955                                          SyscallStatus *status , UWord *flags ) ;
4956 extern void vgSysWrap_generic_sys_access_after(ThreadId tid ,   4956 extern void vgSysWrap_generic_sys_access_after(ThreadId tid ,
4957                                                SyscallArgs *arrghs ,   4957                                                SyscallArgs *arrghs ,
4958                                                SyscallStatus *status ) ;   4958                                                SyscallStatus *status ) ;
4959 void vgSysWrap_generic_sys_kill_before(ThreadId tid , SyscallArgLayout *layout ,   4959 void vgSysWrap_generic_sys_kill_before(ThreadId tid , SyscallArgLayout *layout ,
4960                                        SyscallArgs *arrghs ,   4960                                        SyscallArgs *arrghs ,
4961                                        SyscallStatus *status , UWord *flags ) ;   4961                                        SyscallStatus *status , UWord *flags ) ;
4962 extern void vgSysWrap_generic_sys_kill_after(ThreadId tid ,   4962 extern void vgSysWrap_generic_sys_kill_after(ThreadId tid ,
4963                                              SyscallArgs *arrghs ,   4963                                              SyscallArgs *arrghs ,
4964                                              SyscallStatus *status ) ;   4964                                              SyscallStatus *status ) ;
4965 void vgSysWrap_generic_sys_rename_before(ThreadId tid ,   4965 void vgSysWrap_generic_sys_rename_before(ThreadId tid ,
4966                                          SyscallArgLayout *layout ,   4966                                          SyscallArgLayout *layout ,
4967                                          SyscallArgs *arrghs ,   4967                                          SyscallArgs *arrghs ,
4968                                          SyscallStatus *status , UWord *flags ) ;   4968                                          SyscallStatus *status , UWord *flags ) ;
4969 extern void vgSysWrap_generic_sys_rename_after(ThreadId tid ,   4969 extern void vgSysWrap_generic_sys_rename_after(ThreadId tid ,
4970                                                SyscallArgs *arrghs ,   4970                                                SyscallArgs *arrghs ,
4971                                                SyscallStatus *status ) ;   4971                                                SyscallStatus *status ) ;
4972 void vgSysWrap_generic_sys_mkdir_before(ThreadId tid ,   4972 void vgSysWrap_generic_sys_mkdir_before(ThreadId tid ,
4973                                         SyscallArgLayout *layout ,   4973                                         SyscallArgLayout *layout ,
4974                                         SyscallArgs *arrghs ,   4974                                         SyscallArgs *arrghs ,
4975                                         SyscallStatus *status , UWord *flags ) ;   4975                                         SyscallStatus *status , UWord *flags ) ;
4976 extern void vgSysWrap_generic_sys_mkdir_after(ThreadId tid ,   4976 extern void vgSysWrap_generic_sys_mkdir_after(ThreadId tid ,
4977                                               SyscallArgs *arrghs ,   4977                                               SyscallArgs *arrghs ,
4978                                               SyscallStatus *status ) ;   4978                                               SyscallStatus *status ) ;
4979 void vgSysWrap_generic_sys_rmdir_before(ThreadId tid ,   4979 void vgSysWrap_generic_sys_rmdir_before(ThreadId tid ,
4980                                         SyscallArgLayout *layout ,   4980                                         SyscallArgLayout *layout ,
4981                                         SyscallArgs *arrghs ,   4981                                         SyscallArgs *arrghs ,
4982                                         SyscallStatus *status , UWord *flags ) ;   4982                                         SyscallStatus *status , UWord *flags ) ;
4983 extern void vgSysWrap_generic_sys_rmdir_after(ThreadId tid ,   4983 extern void vgSysWrap_generic_sys_rmdir_after(ThreadId tid ,
4984                                               SyscallArgs *arrghs ,   4984                                               SyscallArgs *arrghs ,
4985                                               SyscallStatus *status ) ;   4985                                               SyscallStatus *status ) ;
4986 void vgSysWrap_generic_sys_dup_before(ThreadId tid , SyscallArgLayout *layout ,   4986 void vgSysWrap_generic_sys_dup_before(ThreadId tid , SyscallArgLayout *layout ,
4987                                       SyscallArgs *arrghs ,   4987                                       SyscallArgs *arrghs ,
4988                                       SyscallStatus *status , UWord *flags ) ;   4988                                       SyscallStatus *status , UWord *flags ) ;
4989 void vgSysWrap_generic_sys_dup_after(ThreadId tid , SyscallArgs *arrghs ,   4989 void vgSysWrap_generic_sys_dup_after(ThreadId tid , SyscallArgs *arrghs ,
4990                                      SyscallStatus *status ) ;   4990                                      SyscallStatus *status ) ;
4991 void vgSysWrap_generic_sys_times_before(ThreadId tid ,   4991 void vgSysWrap_generic_sys_times_before(ThreadId tid ,
4992                                         SyscallArgLayout *layout ,   4992                                         SyscallArgLayout *layout ,
4993                                         SyscallArgs *arrghs ,   4993                                         SyscallArgs *arrghs ,
4994                                         SyscallStatus *status , UWord *flags ) ;   4994                                         SyscallStatus *status , UWord *flags ) ;
4995 void vgSysWrap_generic_sys_times_after(ThreadId tid , SyscallArgs *arrghs ,   4995 void vgSysWrap_generic_sys_times_after(ThreadId tid , SyscallArgs *arrghs ,
4996                                        SyscallStatus *status ) ;   4996                                        SyscallStatus *status ) ;
4997 void vgSysWrap_generic_sys_setpgid_before(ThreadId tid ,   4997 void vgSysWrap_generic_sys_setpgid_before(ThreadId tid ,
4998                                           SyscallArgLayout *layout ,   4998                                           SyscallArgLayout *layout ,
4999                                           SyscallArgs *arrghs ,   4999                                           SyscallArgs *arrghs ,
5000                                           SyscallStatus *status , UWord *flags ) ;   5000                                           SyscallStatus *status , UWord *flags ) ;
5001 extern void vgSysWrap_generic_sys_setpgid_after(ThreadId tid ,   5001 extern void vgSysWrap_generic_sys_setpgid_after(ThreadId tid ,
5002                                                 SyscallArgs *arrghs ,   5002                                                 SyscallArgs *arrghs ,
5003                                                 SyscallStatus *status ) ;   5003                                                 SyscallStatus *status ) ;
5004 void vgSysWrap_generic_sys_umask_before(ThreadId tid ,   5004 void vgSysWrap_generic_sys_umask_before(ThreadId tid ,
5005                                         SyscallArgLayout *layout ,   5005                                         SyscallArgLayout *layout ,
5006                                         SyscallArgs *arrghs ,   5006                                         SyscallArgs *arrghs ,
5007                                         SyscallStatus *status , UWord *flags ) ;   5007                                         SyscallStatus *status , UWord *flags ) ;
5008 extern void vgSysWrap_generic_sys_umask_after(ThreadId tid ,   5008 extern void vgSysWrap_generic_sys_umask_after(ThreadId tid ,
5009                                               SyscallArgs *arrghs ,   5009                                               SyscallArgs *arrghs ,
5010                                               SyscallStatus *status ) ;   5010                                               SyscallStatus *status ) ;
5011 void vgSysWrap_generic_sys_dup2_before(ThreadId tid , SyscallArgLayout *layout ,   5011 void vgSysWrap_generic_sys_dup2_before(ThreadId tid , SyscallArgLayout *layout ,
5012                                        SyscallArgs *arrghs ,   5012                                        SyscallArgs *arrghs ,
5013                                        SyscallStatus *status , UWord *flags ) ;   5013                                        SyscallStatus *status , UWord *flags ) ;
5014 void vgSysWrap_generic_sys_dup2_after(ThreadId tid , SyscallArgs *arrghs ,   5014 void vgSysWrap_generic_sys_dup2_after(ThreadId tid , SyscallArgs *arrghs ,
5015                                       SyscallStatus *status ) ;   5015                                       SyscallStatus *status ) ;
5016 void vgSysWrap_generic_sys_getppid_before(ThreadId tid ,   5016 void vgSysWrap_generic_sys_getppid_before(ThreadId tid ,
5017                                           SyscallArgLayout *layout ,   5017                                           SyscallArgLayout *layout ,
5018                                           SyscallArgs *arrghs ,   5018                                           SyscallArgs *arrghs ,
5019                                           SyscallStatus *status , UWord *flags ) ;   5019                                           SyscallStatus *status , UWord *flags ) ;
5020 extern void vgSysWrap_generic_sys_getppid_after(ThreadId tid ,   5020 extern void vgSysWrap_generic_sys_getppid_after(ThreadId tid ,
5021                                                 SyscallArgs *arrghs ,   5021                                                 SyscallArgs *arrghs ,
5022                                                 SyscallStatus *status ) ;   5022                                                 SyscallStatus *status ) ;
5023 void vgSysWrap_generic_sys_getpgrp_before(ThreadId tid ,   5023 void vgSysWrap_generic_sys_getpgrp_before(ThreadId tid ,
5024                                           SyscallArgLayout *layout ,   5024                                           SyscallArgLayout *layout ,
5025                                           SyscallArgs *arrghs ,   5025                                           SyscallArgs *arrghs ,
5026                                           SyscallStatus *status , UWord *flags ) ;   5026                                           SyscallStatus *status , UWord *flags ) ;
5027 extern void vgSysWrap_generic_sys_getpgrp_after(ThreadId tid ,   5027 extern void vgSysWrap_generic_sys_getpgrp_after(ThreadId tid ,
5028                                                 SyscallArgs *arrghs ,   5028                                                 SyscallArgs *arrghs ,
5029                                                 SyscallStatus *status ) ;   5029                                                 SyscallStatus *status ) ;
5030 void vgSysWrap_generic_sys_setsid_before(ThreadId tid ,   5030 void vgSysWrap_generic_sys_setsid_before(ThreadId tid ,
5031                                          SyscallArgLayout *layout ,   5031                                          SyscallArgLayout *layout ,
5032                                          SyscallArgs *arrghs ,   5032                                          SyscallArgs *arrghs ,
5033                                          SyscallStatus *status , UWord *flags ) ;   5033                                          SyscallStatus *status , UWord *flags ) ;
5034 extern void vgSysWrap_generic_sys_setsid_after(ThreadId tid ,   5034 extern void vgSysWrap_generic_sys_setsid_after(ThreadId tid ,
5035                                                SyscallArgs *arrghs ,   5035                                                SyscallArgs *arrghs ,
5036                                                SyscallStatus *status ) ;   5036                                                SyscallStatus *status ) ;
5037 void vgSysWrap_generic_sys_munmap_before(ThreadId tid ,   5037 void vgSysWrap_generic_sys_munmap_before(ThreadId tid ,
5038                                          SyscallArgLayout *layout ,   5038                                          SyscallArgLayout *layout ,
5039                                          SyscallArgs *arrghs ,   5039                                          SyscallArgs *arrghs ,
5040                                          SyscallStatus *status , UWord *flags ) ;   5040                                          SyscallStatus *status , UWord *flags ) ;
5041 void vgSysWrap_generic_sys_munmap_after(ThreadId tid , SyscallArgs *arrghs ,   5041 void vgSysWrap_generic_sys_munmap_after(ThreadId tid , SyscallArgs *arrghs ,
5042                                         SyscallStatus *status ) ;   5042                                         SyscallStatus *status ) ;
5043 void vgSysWrap_generic_sys_truncate_before(ThreadId tid ,   5043 void vgSysWrap_generic_sys_truncate_before(ThreadId tid ,
5044                                            SyscallArgLayout *layout ,   5044                                            SyscallArgLayout *layout ,
5045                                            SyscallArgs *arrghs ,   5045                                            SyscallArgs *arrghs ,
5046                                            SyscallStatus *status , UWord *flags ) ;   5046                                            SyscallStatus *status , UWord *flags ) ;
5047 extern void vgSysWrap_generic_sys_truncate_after(ThreadId tid ,   5047 extern void vgSysWrap_generic_sys_truncate_after(ThreadId tid ,
5048                                                  SyscallArgs *arrghs ,   5048                                                  SyscallArgs *arrghs ,
5049                                                  SyscallStatus *status ) ;   5049                                                  SyscallStatus *status ) ;
5050 void vgSysWrap_generic_sys_ftruncate_before(ThreadId tid ,   5050 void vgSysWrap_generic_sys_ftruncate_before(ThreadId tid ,
5051                                             SyscallArgLayout *layout ,   5051                                             SyscallArgLayout *layout ,
5052                                             SyscallArgs *arrghs ,   5052                                             SyscallArgs *arrghs ,
5053                                             SyscallStatus *status ,   5053                                             SyscallStatus *status ,
5054                                             UWord *flags ) ;   5054                                             UWord *flags ) ;
5055 extern void vgSysWrap_generic_sys_ftruncate_after(ThreadId tid ,   5055 extern void vgSysWrap_generic_sys_ftruncate_after(ThreadId tid ,
5056                                                   SyscallArgs *arrghs ,   5056                                                   SyscallArgs *arrghs ,
5057                                                   SyscallStatus *status ) ;   5057                                                   SyscallStatus *status ) ;
5058 void vgSysWrap_generic_sys_fchmod_before(ThreadId tid ,   5058 void vgSysWrap_generic_sys_fchmod_before(ThreadId tid ,
5059                                          SyscallArgLayout *layout ,   5059                                          SyscallArgLayout *layout ,
5060                                          SyscallArgs *arrghs ,   5060                                          SyscallArgs *arrghs ,
5061                                          SyscallStatus *status , UWord *flags ) ;   5061                                          SyscallStatus *status , UWord *flags ) ;
5062 extern void vgSysWrap_generic_sys_fchmod_after(ThreadId tid ,   5062 extern void vgSysWrap_generic_sys_fchmod_after(ThreadId tid ,
5063                                                SyscallArgs *arrghs ,   5063                                                SyscallArgs *arrghs ,
5064                                                SyscallStatus *status ) ;   5064                                                SyscallStatus *status ) ;
5065 void vgSysWrap_generic_sys_msync_before(ThreadId tid ,   5065 void vgSysWrap_generic_sys_msync_before(ThreadId tid ,
5066                                         SyscallArgLayout *layout ,   5066                                         SyscallArgLayout *layout ,
5067                                         SyscallArgs *arrghs ,   5067                                         SyscallArgs *arrghs ,
5068                                         SyscallStatus *status , UWord *flags ) ;   5068                                         SyscallStatus *status , UWord *flags ) ;
5069 extern void vgSysWrap_generic_sys_msync_after(ThreadId tid ,   5069 extern void vgSysWrap_generic_sys_msync_after(ThreadId tid ,
5070                                               SyscallArgs *arrghs ,   5070                                               SyscallArgs *arrghs ,
5071                                               SyscallStatus *status ) ;   5071                                               SyscallStatus *status ) ;
5072 void vgSysWrap_generic_sys_readv_before(ThreadId tid ,   5072 void vgSysWrap_generic_sys_readv_before(ThreadId tid ,
5073                                         SyscallArgLayout *layout ,   5073                                         SyscallArgLayout *layout ,
5074                                         SyscallArgs *arrghs ,   5074                                         SyscallArgs *arrghs ,
5075                                         SyscallStatus *status , UWord *flags ) ;   5075                                         SyscallStatus *status , UWord *flags ) ;
5076 void vgSysWrap_generic_sys_readv_after(ThreadId tid , SyscallArgs *arrghs ,   5076 void vgSysWrap_generic_sys_readv_after(ThreadId tid , SyscallArgs *arrghs ,
5077                                        SyscallStatus *status ) ;   5077                                        SyscallStatus *status ) ;
5078 void vgSysWrap_generic_sys_writev_before(ThreadId tid ,   5078 void vgSysWrap_generic_sys_writev_before(ThreadId tid ,
5079                                          SyscallArgLayout *layout ,   5079                                          SyscallArgLayout *layout ,
5080                                          SyscallArgs *arrghs ,   5080                                          SyscallArgs *arrghs ,
5081                                          SyscallStatus *status , UWord *flags ) ;   5081                                          SyscallStatus *status , UWord *flags ) ;
5082 extern void vgSysWrap_generic_sys_writev_after(ThreadId tid ,   5082 extern void vgSysWrap_generic_sys_writev_after(ThreadId tid ,
5083                                                SyscallArgs *arrghs ,   5083                                                SyscallArgs *arrghs ,
5084                                                SyscallStatus *status ) ;   5084                                                SyscallStatus *status ) ;
5085 void vgSysWrap_generic_sys_getsid_before(ThreadId tid ,   5085 void vgSysWrap_generic_sys_getsid_before(ThreadId tid ,
5086                                          SyscallArgLayout *layout ,   5086                                          SyscallArgLayout *layout ,
5087                                          SyscallArgs *arrghs ,   5087                                          SyscallArgs *arrghs ,
5088                                          SyscallStatus *status , UWord *flags ) ;   5088                                          SyscallStatus *status , UWord *flags ) ;
5089 extern void vgSysWrap_generic_sys_getsid_after(ThreadId tid ,   5089 extern void vgSysWrap_generic_sys_getsid_after(ThreadId tid ,
5090                                                SyscallArgs *arrghs ,   5090                                                SyscallArgs *arrghs ,
5091                                                SyscallStatus *status ) ;   5091                                                SyscallStatus *status ) ;
5092 void vgSysWrap_generic_sys_fdatasync_before(ThreadId tid ,   5092 void vgSysWrap_generic_sys_fdatasync_before(ThreadId tid ,
5093                                             SyscallArgLayout *layout ,   5093                                             SyscallArgLayout *layout ,
5094                                             SyscallArgs *arrghs ,   5094                                             SyscallArgs *arrghs ,
5095                                             SyscallStatus *status ,   5095                                             SyscallStatus *status ,
5096                                             UWord *flags ) ;   5096                                             UWord *flags ) ;
5097 extern void vgSysWrap_generic_sys_fdatasync_after(ThreadId tid ,   5097 extern void vgSysWrap_generic_sys_fdatasync_after(ThreadId tid ,
5098                                                   SyscallArgs *arrghs ,   5098                                                   SyscallArgs *arrghs ,
5099                                                   SyscallStatus *status ) ;   5099                                                   SyscallStatus *status ) ;
5100 void vgSysWrap_generic_sys_mlock_before(ThreadId tid ,   5100 void vgSysWrap_generic_sys_mlock_before(ThreadId tid ,
5101                                         SyscallArgLayout *layout ,   5101                                         SyscallArgLayout *layout ,
5102                                         SyscallArgs *arrghs ,   5102                                         SyscallArgs *arrghs ,
5103                                         SyscallStatus *status , UWord *flags ) ;   5103                                         SyscallStatus *status , UWord *flags ) ;
5104 extern void vgSysWrap_generic_sys_mlock_after(ThreadId tid ,   5104 extern void vgSysWrap_generic_sys_mlock_after(ThreadId tid ,
5105                                               SyscallArgs *arrghs ,   5105                                               SyscallArgs *arrghs ,
5106                                               SyscallStatus *status ) ;   5106                                               SyscallStatus *status ) ;
5107 void vgSysWrap_generic_sys_munlock_before(ThreadId tid ,   5107 void vgSysWrap_generic_sys_munlock_before(ThreadId tid ,
5108                                           SyscallArgLayout *layout ,   5108                                           SyscallArgLayout *layout ,
5109                                           SyscallArgs *arrghs ,   5109                                           SyscallArgs *arrghs ,
5110                                           SyscallStatus *status , UWord *flags ) ;   5110                                           SyscallStatus *status , UWord *flags ) ;
5111 extern void vgSysWrap_generic_sys_munlock_after(ThreadId tid ,   5111 extern void vgSysWrap_generic_sys_munlock_after(ThreadId tid ,
5112                                                 SyscallArgs *arrghs ,   5112                                                 SyscallArgs *arrghs ,
5113                                                 SyscallStatus *status ) ;   5113                                                 SyscallStatus *status ) ;
5114 void vgSysWrap_generic_sys_mlockall_before(ThreadId tid ,   5114 void vgSysWrap_generic_sys_mlockall_before(ThreadId tid ,
5115                                            SyscallArgLayout *layout ,   5115                                            SyscallArgLayout *layout ,
5116                                            SyscallArgs *arrghs ,   5116                                            SyscallArgs *arrghs ,
5117                                            SyscallStatus *status , UWord *flags ) ;   5117                                            SyscallStatus *status , UWord *flags ) ;
5118 extern void vgSysWrap_generic_sys_mlockall_after(ThreadId tid ,   5118 extern void vgSysWrap_generic_sys_mlockall_after(ThreadId tid ,
5119                                                  SyscallArgs *arrghs ,   5119                                                  SyscallArgs *arrghs ,
5120                                                  SyscallStatus *status ) ;   5120                                                  SyscallStatus *status ) ;
5121 void vgSysWrap_generic_sys_nanosleep_before(ThreadId tid ,   5121 void vgSysWrap_generic_sys_nanosleep_before(ThreadId tid ,
5122                                             SyscallArgLayout *layout ,   5122                                             SyscallArgLayout *layout ,
5123                                             SyscallArgs *arrghs ,   5123                                             SyscallArgs *arrghs ,
5124                                             SyscallStatus *status ,   5124                                             SyscallStatus *status ,
5125                                             UWord *flags ) ;   5125                                             UWord *flags ) ;
5126 void vgSysWrap_generic_sys_nanosleep_after(ThreadId tid , SyscallArgs *arrghs ,   5126 void vgSysWrap_generic_sys_nanosleep_after(ThreadId tid , SyscallArgs *arrghs ,
5127                                            SyscallStatus *status ) ;   5127                                            SyscallStatus *status ) ;
5128 void vgSysWrap_generic_sys_mremap_before(ThreadId tid ,   5128 void vgSysWrap_generic_sys_mremap_before(ThreadId tid ,
5129                                          SyscallArgLayout *layout ,   5129                                          SyscallArgLayout *layout ,
5130                                          SyscallArgs *arrghs ,   5130                                          SyscallArgs *arrghs ,
5131                                          SyscallStatus *status , UWord *flags ) ;   5131                                          SyscallStatus *status , UWord *flags ) ;
5132 extern void vgSysWrap_generic_sys_mremap_after(ThreadId tid ,   5132 extern void vgSysWrap_generic_sys_mremap_after(ThreadId tid ,
5133                                                SyscallArgs *arrghs ,   5133                                                SyscallArgs *arrghs ,
5134                                                SyscallStatus *status ) ;   5134                                                SyscallStatus *status ) ;
5135 void vgSysWrap_generic_sys_getuid_before(ThreadId tid ,   5135 void vgSysWrap_generic_sys_getuid_before(ThreadId tid ,
5136                                          SyscallArgLayout *layout ,   5136                                          SyscallArgLayout *layout ,
5137                                          SyscallArgs *arrghs ,   5137                                          SyscallArgs *arrghs ,
5138                                          SyscallStatus *status , UWord *flags ) ;   5138                                          SyscallStatus *status , UWord *flags ) ;
5139 extern void vgSysWrap_generic_sys_getuid_after(ThreadId tid ,   5139 extern void vgSysWrap_generic_sys_getuid_after(ThreadId tid ,
5140                                                SyscallArgs *arrghs ,   5140                                                SyscallArgs *arrghs ,
5141                                                SyscallStatus *status ) ;   5141                                                SyscallStatus *status ) ;
5142 void vgSysWrap_generic_sys_getgid_before(ThreadId tid ,   5142 void vgSysWrap_generic_sys_getgid_before(ThreadId tid ,
5143                                          SyscallArgLayout *layout ,   5143                                          SyscallArgLayout *layout ,
5144                                          SyscallArgs *arrghs ,   5144                                          SyscallArgs *arrghs ,
5145                                          SyscallStatus *status , UWord *flags ) ;   5145                                          SyscallStatus *status , UWord *flags ) ;
5146 extern void vgSysWrap_generic_sys_getgid_after(ThreadId tid ,   5146 extern void vgSysWrap_generic_sys_getgid_after(ThreadId tid ,
5147                                                SyscallArgs *arrghs ,   5147                                                SyscallArgs *arrghs ,
5148                                                SyscallStatus *status ) ;   5148                                                SyscallStatus *status ) ;
5149 void vgSysWrap_generic_sys_geteuid_before(ThreadId tid ,   5149 void vgSysWrap_generic_sys_geteuid_before(ThreadId tid ,
5150                                           SyscallArgLayout *layout ,   5150                                           SyscallArgLayout *layout ,
5151                                           SyscallArgs *arrghs ,   5151                                           SyscallArgs *arrghs ,
5152                                           SyscallStatus *status , UWord *flags ) ;   5152                                           SyscallStatus *status , UWord *flags ) ;
5153 extern void vgSysWrap_generic_sys_geteuid_after(ThreadId tid ,   5153 extern void vgSysWrap_generic_sys_geteuid_after(ThreadId tid ,
5154                                                 SyscallArgs *arrghs ,   5154                                                 SyscallArgs *arrghs ,
5155                                                 SyscallStatus *status ) ;   5155                                                 SyscallStatus *status ) ;
5156 void vgSysWrap_generic_sys_getegid_before(ThreadId tid ,   5156 void vgSysWrap_generic_sys_getegid_before(ThreadId tid ,
5157                                           SyscallArgLayout *layout ,   5157                                           SyscallArgLayout *layout ,
5158                                           SyscallArgs *arrghs ,   5158                                           SyscallArgs *arrghs ,
5159                                           SyscallStatus *status , UWord *flags ) ;   5159                                           SyscallStatus *status , UWord *flags ) ;
5160 extern void vgSysWrap_generic_sys_getegid_after(ThreadId tid ,   5160 extern void vgSysWrap_generic_sys_getegid_after(ThreadId tid ,
5161                                                 SyscallArgs *arrghs ,   5161                                                 SyscallArgs *arrghs ,
5162                                                 SyscallStatus *status ) ;   5162                                                 SyscallStatus *status ) ;
5163 void vgSysWrap_generic_sys_getpgid_before(ThreadId tid ,   5163 void vgSysWrap_generic_sys_getpgid_before(ThreadId tid ,
5164                                           SyscallArgLayout *layout ,   5164                                           SyscallArgLayout *layout ,
5165                                           SyscallArgs *arrghs ,   5165                                           SyscallArgs *arrghs ,
5166                                           SyscallStatus *status , UWord *flags ) ;   5166                                           SyscallStatus *status , UWord *flags ) ;
5167 extern void vgSysWrap_generic_sys_getpgid_after(ThreadId tid ,   5167 extern void vgSysWrap_generic_sys_getpgid_after(ThreadId tid ,
5168                                                 SyscallArgs *arrghs ,   5168                                                 SyscallArgs *arrghs ,
5169                                                 SyscallStatus *status ) ;   5169                                                 SyscallStatus *status ) ;
5170 void vgSysWrap_generic_sys_fsync_before(ThreadId tid ,   5170 void vgSysWrap_generic_sys_fsync_before(ThreadId tid ,
5171                                         SyscallArgLayout *layout ,   5171                                         SyscallArgLayout *layout ,
5172                                         SyscallArgs *arrghs ,   5172                                         SyscallArgs *arrghs ,
5173                                         SyscallStatus *status , UWord *flags ) ;   5173                                         SyscallStatus *status , UWord *flags ) ;
5174 extern void vgSysWrap_generic_sys_fsync_after(ThreadId tid ,   5174 extern void vgSysWrap_generic_sys_fsync_after(ThreadId tid ,
5175                                               SyscallArgs *arrghs ,   5175                                               SyscallArgs *arrghs ,
5176                                               SyscallStatus *status ) ;   5176                                               SyscallStatus *status ) ;
5177 void vgSysWrap_generic_sys_wait4_before(ThreadId tid ,   5177 void vgSysWrap_generic_sys_wait4_before(ThreadId tid ,
5178                                         SyscallArgLayout *layout ,   5178                                         SyscallArgLayout *layout ,
5179                                         SyscallArgs *arrghs ,   5179                                         SyscallArgs *arrghs ,
5180                                         SyscallStatus *status , UWord *flags ) ;   5180                                         SyscallStatus *status , UWord *flags ) ;
5181 void vgSysWrap_generic_sys_wait4_after(ThreadId tid , SyscallArgs *arrghs ,   5181 void vgSysWrap_generic_sys_wait4_after(ThreadId tid , SyscallArgs *arrghs ,
5182                                        SyscallStatus *status ) ;   5182                                        SyscallStatus *status ) ;
5183 void vgSysWrap_generic_sys_mprotect_before(ThreadId tid ,   5183 void vgSysWrap_generic_sys_mprotect_before(ThreadId tid ,
5184                                            SyscallArgLayout *layout ,   5184                                            SyscallArgLayout *layout ,
5185                                            SyscallArgs *arrghs ,   5185                                            SyscallArgs *arrghs ,
5186                                            SyscallStatus *status , UWord *flags ) ;   5186                                            SyscallStatus *status , UWord *flags ) ;
5187 void vgSysWrap_generic_sys_mprotect_after(ThreadId tid , SyscallArgs *arrghs ,   5187 void vgSysWrap_generic_sys_mprotect_after(ThreadId tid , SyscallArgs *arrghs ,
5188                                           SyscallStatus *status ) ;   5188                                           SyscallStatus *status ) ;
5189 void vgSysWrap_generic_sys_getcwd_before(ThreadId tid ,   5189 void vgSysWrap_generic_sys_getcwd_before(ThreadId tid ,
5190                                          SyscallArgLayout *layout ,   5190                                          SyscallArgLayout *layout ,
5191                                          SyscallArgs *arrghs ,   5191                                          SyscallArgs *arrghs ,
5192                                          SyscallStatus *status , UWord *flags ) ;   5192                                          SyscallStatus *status , UWord *flags ) ;
5193 void vgSysWrap_generic_sys_getcwd_after(ThreadId tid , SyscallArgs *arrghs ,   5193 void vgSysWrap_generic_sys_getcwd_after(ThreadId tid , SyscallArgs *arrghs ,
5194                                         SyscallStatus *status ) ;   5194                                         SyscallStatus *status ) ;
5195 void vgSysWrap_generic_sys_symlink_before(ThreadId tid ,   5195 void vgSysWrap_generic_sys_symlink_before(ThreadId tid ,
5196                                           SyscallArgLayout *layout ,   5196                                           SyscallArgLayout *layout ,
5197                                           SyscallArgs *arrghs ,   5197                                           SyscallArgs *arrghs ,
5198                                           SyscallStatus *status , UWord *flags ) ;   5198                                           SyscallStatus *status , UWord *flags ) ;
5199 extern void vgSysWrap_generic_sys_symlink_after(ThreadId tid ,   5199 extern void vgSysWrap_generic_sys_symlink_after(ThreadId tid ,
5200                                                 SyscallArgs *arrghs ,   5200                                                 SyscallArgs *arrghs ,
5201                                                 SyscallStatus *status ) ;   5201                                                 SyscallStatus *status ) ;
5202 void vgSysWrap_generic_sys_getgroups_before(ThreadId tid ,   5202 void vgSysWrap_generic_sys_getgroups_before(ThreadId tid ,
5203                                             SyscallArgLayout *layout ,   5203                                             SyscallArgLayout *layout ,
5204                                             SyscallArgs *arrghs ,   5204                                             SyscallArgs *arrghs ,
5205                                             SyscallStatus *status ,   5205                                             SyscallStatus *status ,
5206                                             UWord *flags ) ;   5206                                             UWord *flags ) ;
5207 void vgSysWrap_generic_sys_getgroups_after(ThreadId tid , SyscallArgs *arrghs ,   5207 void vgSysWrap_generic_sys_getgroups_after(ThreadId tid , SyscallArgs *arrghs ,
5208                                            SyscallStatus *status ) ;   5208                                            SyscallStatus *status ) ;
5209 void vgSysWrap_generic_sys_setgroups_before(ThreadId tid ,   5209 void vgSysWrap_generic_sys_setgroups_before(ThreadId tid ,
5210                                             SyscallArgLayout *layout ,   5210                                             SyscallArgLayout *layout ,
5211                                             SyscallArgs *arrghs ,   5211                                             SyscallArgs *arrghs ,
5212                                             SyscallStatus *status ,   5212                                             SyscallStatus *status ,
5213                                             UWord *flags ) ;   5213                                             UWord *flags ) ;
5214 extern void vgSysWrap_generic_sys_setgroups_after(ThreadId tid ,   5214 extern void vgSysWrap_generic_sys_setgroups_after(ThreadId tid ,
5215                                                   SyscallArgs *arrghs ,   5215                                                   SyscallArgs *arrghs ,
5216                                                   SyscallStatus *status ) ;   5216                                                   SyscallStatus *status ) ;
5217 void vgSysWrap_generic_sys_chown_before(ThreadId tid ,   5217 void vgSysWrap_generic_sys_chown_before(ThreadId tid ,
5218                                         SyscallArgLayout *layout ,   5218                                         SyscallArgLayout *layout ,
5219                                         SyscallArgs *arrghs ,   5219                                         SyscallArgs *arrghs ,
5220                                         SyscallStatus *status , UWord *flags ) ;   5220                                         SyscallStatus *status , UWord *flags ) ;
5221 extern void vgSysWrap_generic_sys_chown_after(ThreadId tid ,   5221 extern void vgSysWrap_generic_sys_chown_after(ThreadId tid ,
5222                                               SyscallArgs *arrghs ,   5222                                               SyscallArgs *arrghs ,
5223                                               SyscallStatus *status ) ;   5223                                               SyscallStatus *status ) ;
5224 void vgSysWrap_generic_sys_setuid_before(ThreadId tid ,   5224 void vgSysWrap_generic_sys_setuid_before(ThreadId tid ,
5225                                          SyscallArgLayout *layout ,   5225                                          SyscallArgLayout *layout ,
5226                                          SyscallArgs *arrghs ,   5226                                          SyscallArgs *arrghs ,
5227                                          SyscallStatus *status , UWord *flags ) ;   5227                                          SyscallStatus *status , UWord *flags ) ;
5228 extern void vgSysWrap_generic_sys_setuid_after(ThreadId tid ,   5228 extern void vgSysWrap_generic_sys_setuid_after(ThreadId tid ,
5229                                                SyscallArgs *arrghs ,   5229                                                SyscallArgs *arrghs ,
5230                                                SyscallStatus *status ) ;   5230                                                SyscallStatus *status ) ;
5231 void vgSysWrap_generic_sys_gettimeofday_before(ThreadId tid ,   5231 void vgSysWrap_generic_sys_gettimeofday_before(ThreadId tid ,
5232                                                SyscallArgLayout *layout ,   5232                                                SyscallArgLayout *layout ,
5233                                                SyscallArgs *arrghs ,   5233                                                SyscallArgs *arrghs ,
5234                                                SyscallStatus *status ,   5234                                                SyscallStatus *status ,
5235                                                UWord *flags ) ;   5235                                                UWord *flags ) ;
5236 void vgSysWrap_generic_sys_gettimeofday_after(ThreadId tid ,   5236 void vgSysWrap_generic_sys_gettimeofday_after(ThreadId tid ,
5237                                               SyscallArgs *arrghs ,   5237                                               SyscallArgs *arrghs ,
5238                                               SyscallStatus *status ) ;   5238                                               SyscallStatus *status ) ;
5239 void vgSysWrap_generic_sys_madvise_before(ThreadId tid ,   5239 void vgSysWrap_generic_sys_madvise_before(ThreadId tid ,
5240                                           SyscallArgLayout *layout ,   5240                                           SyscallArgLayout *layout ,
5241                                           SyscallArgs *arrghs ,   5241                                           SyscallArgs *arrghs ,
5242                                           SyscallStatus *status , UWord *flags ) ;   5242                                           SyscallStatus *status , UWord *flags ) ;
5243 extern void vgSysWrap_generic_sys_madvise_after(ThreadId tid ,   5243 extern void vgSysWrap_generic_sys_madvise_after(ThreadId tid ,
5244                                                 SyscallArgs *arrghs ,   5244                                                 SyscallArgs *arrghs ,
5245                                                 SyscallStatus *status ) ;   5245                                                 SyscallStatus *status ) ;
5246 void vgSysWrap_generic_sys_nice_before(ThreadId tid , SyscallArgLayout *layout ,   5246 void vgSysWrap_generic_sys_nice_before(ThreadId tid , SyscallArgLayout *layout ,
5247                                        SyscallArgs *arrghs ,   5247                                        SyscallArgs *arrghs ,
5248                                        SyscallStatus *status , UWord *flags ) ;   5248                                        SyscallStatus *status , UWord *flags ) ;
5249 extern void vgSysWrap_generic_sys_nice_after(ThreadId tid ,   5249 extern void vgSysWrap_generic_sys_nice_after(ThreadId tid ,
5250                                              SyscallArgs *arrghs ,   5250                                              SyscallArgs *arrghs ,
5251                                              SyscallStatus *status ) ;   5251                                              SyscallStatus *status ) ;
5252 void vgSysWrap_generic_sys_sync_before(ThreadId tid , SyscallArgLayout *layout ,   5252 void vgSysWrap_generic_sys_sync_before(ThreadId tid , SyscallArgLayout *layout ,
5253                                        SyscallArgs *arrghs ,   5253                                        SyscallArgs *arrghs ,
5254                                        SyscallStatus *status , UWord *flags ) ;   5254                                        SyscallStatus *status , UWord *flags ) ;
5255 extern void vgSysWrap_generic_sys_sync_after(ThreadId tid ,   5255 extern void vgSysWrap_generic_sys_sync_after(ThreadId tid ,
5256                                              SyscallArgs *arrghs ,   5256                                              SyscallArgs *arrghs ,
5257                                              SyscallStatus *status ) ;   5257                                              SyscallStatus *status ) ;
5258 void vgSysWrap_generic_sys_brk_before(ThreadId tid , SyscallArgLayout *layout ,   5258 void vgSysWrap_generic_sys_brk_before(ThreadId tid , SyscallArgLayout *layout ,
5259                                       SyscallArgs *arrghs ,   5259                                       SyscallArgs *arrghs ,
5260                                       SyscallStatus *status , UWord *flags ) ;   5260                                       SyscallStatus *status , UWord *flags ) ;
5261 extern void vgSysWrap_generic_sys_brk_after(ThreadId tid , SyscallArgs *arrghs ,   5261 extern void vgSysWrap_generic_sys_brk_after(ThreadId tid , SyscallArgs *arrghs ,
5262                                             SyscallStatus *status ) ;   5262                                             SyscallStatus *status ) ;
5263 void vgSysWrap_generic_sys_acct_before(ThreadId tid , SyscallArgLayout *layout ,   5263 void vgSysWrap_generic_sys_acct_before(ThreadId tid , SyscallArgLayout *layout ,
5264                                        SyscallArgs *arrghs ,   5264                                        SyscallArgs *arrghs ,
5265                                        SyscallStatus *status , UWord *flags ) ;   5265                                        SyscallStatus *status , UWord *flags ) ;
5266 extern void vgSysWrap_generic_sys_acct_after(ThreadId tid ,   5266 extern void vgSysWrap_generic_sys_acct_after(ThreadId tid ,
5267                                              SyscallArgs *arrghs ,   5267                                              SyscallArgs *arrghs ,
5268                                              SyscallStatus *status ) ;   5268                                              SyscallStatus *status ) ;
5269 void vgSysWrap_generic_sys_chroot_before(ThreadId tid ,   5269 void vgSysWrap_generic_sys_chroot_before(ThreadId tid ,
5270                                          SyscallArgLayout *layout ,   5270                                          SyscallArgLayout *layout ,
5271                                          SyscallArgs *arrghs ,   5271                                          SyscallArgs *arrghs ,
5272                                          SyscallStatus *status , UWord *flags ) ;   5272                                          SyscallStatus *status , UWord *flags ) ;
5273 extern void vgSysWrap_generic_sys_chroot_after(ThreadId tid ,   5273 extern void vgSysWrap_generic_sys_chroot_after(ThreadId tid ,
5274                                                SyscallArgs *arrghs ,   5274                                                SyscallArgs *arrghs ,
5275                                                SyscallStatus *status ) ;   5275                                                SyscallStatus *status ) ;
5276 void vgSysWrap_generic_sys_readlink_before(ThreadId tid ,   5276 void vgSysWrap_generic_sys_readlink_before(ThreadId tid ,
5277                                            SyscallArgLayout *layout ,   5277                                            SyscallArgLayout *layout ,
5278                                            SyscallArgs *arrghs ,   5278                                            SyscallArgs *arrghs ,
5279                                            SyscallStatus *status , UWord *flags ) ;   5279                                            SyscallStatus *status , UWord *flags ) ;
5280 extern void vgSysWrap_generic_sys_readlink_after(ThreadId tid ,   5280 extern void vgSysWrap_generic_sys_readlink_after(ThreadId tid ,
5281                                                  SyscallArgs *arrghs ,   5281                                                  SyscallArgs *arrghs ,
5282                                                  SyscallStatus *status ) ;   5282                                                  SyscallStatus *status ) ;
5283 void vgSysWrap_generic_sys_fchdir_before(ThreadId tid ,   5283 void vgSysWrap_generic_sys_fchdir_before(ThreadId tid ,
5284                                          SyscallArgLayout *layout ,   5284                                          SyscallArgLayout *layout ,
5285                                          SyscallArgs *arrghs ,   5285                                          SyscallArgs *arrghs ,
5286                                          SyscallStatus *status , UWord *flags ) ;   5286                                          SyscallStatus *status , UWord *flags ) ;
5287 extern void vgSysWrap_generic_sys_fchdir_after(ThreadId tid ,   5287 extern void vgSysWrap_generic_sys_fchdir_after(ThreadId tid ,
5288                                                SyscallArgs *arrghs ,   5288                                                SyscallArgs *arrghs ,
5289                                                SyscallStatus *status ) ;   5289                                                SyscallStatus *status ) ;
5290 void vgSysWrap_generic_sys_getdents_before(ThreadId tid ,   5290 void vgSysWrap_generic_sys_getdents_before(ThreadId tid ,
5291                                            SyscallArgLayout *layout ,   5291                                            SyscallArgLayout *layout ,
5292                                            SyscallArgs *arrghs ,   5292                                            SyscallArgs *arrghs ,
5293                                            SyscallStatus *status , UWord *flags ) ;   5293                                            SyscallStatus *status , UWord *flags ) ;
5294 void vgSysWrap_generic_sys_getdents_after(ThreadId tid , SyscallArgs *arrghs ,   5294 void vgSysWrap_generic_sys_getdents_after(ThreadId tid , SyscallArgs *arrghs ,
5295                                           SyscallStatus *status ) ;   5295                                           SyscallStatus *status ) ;
5296 void vgSysWrap_generic_sys_select_before(ThreadId tid ,   5296 void vgSysWrap_generic_sys_select_before(ThreadId tid ,
5297                                          SyscallArgLayout *layout ,   5297                                          SyscallArgLayout *layout ,
5298                                          SyscallArgs *arrghs ,   5298                                          SyscallArgs *arrghs ,
5299                                          SyscallStatus *status , UWord *flags ) ;   5299                                          SyscallStatus *status , UWord *flags ) ;
5300 extern void vgSysWrap_generic_sys_select_after(ThreadId tid ,   5300 extern void vgSysWrap_generic_sys_select_after(ThreadId tid ,
5301                                                SyscallArgs *arrghs ,   5301                                                SyscallArgs *arrghs ,
5302                                                SyscallStatus *status ) ;   5302                                                SyscallStatus *status ) ;
5303 void vgSysWrap_generic_sys_flock_before(ThreadId tid ,   5303 void vgSysWrap_generic_sys_flock_before(ThreadId tid ,
5304                                         SyscallArgLayout *layout ,   5304                                         SyscallArgLayout *layout ,
5305                                         SyscallArgs *arrghs ,   5305                                         SyscallArgs *arrghs ,
5306                                         SyscallStatus *status , UWord *flags ) ;   5306                                         SyscallStatus *status , UWord *flags ) ;
5307 extern void vgSysWrap_generic_sys_flock_after(ThreadId tid ,   5307 extern void vgSysWrap_generic_sys_flock_after(ThreadId tid ,
5308                                               SyscallArgs *arrghs ,   5308                                               SyscallArgs *arrghs ,
5309                                               SyscallStatus *status ) ;   5309                                               SyscallStatus *status ) ;
5310 void vgSysWrap_generic_sys_poll_before(ThreadId tid , SyscallArgLayout *layout ,   5310 void vgSysWrap_generic_sys_poll_before(ThreadId tid , SyscallArgLayout *layout ,
5311                                        SyscallArgs *arrghs ,   5311                                        SyscallArgs *arrghs ,
5312                                        SyscallStatus *status , UWord *flags ) ;   5312                                        SyscallStatus *status , UWord *flags ) ;
5313 void vgSysWrap_generic_sys_poll_after(ThreadId tid , SyscallArgs *arrghs ,   5313 void vgSysWrap_generic_sys_poll_after(ThreadId tid , SyscallArgs *arrghs ,
5314                                       SyscallStatus *status ) ;   5314                                       SyscallStatus *status ) ;
5315 void vgSysWrap_generic_sys_getrusage_before(ThreadId tid ,   5315 void vgSysWrap_generic_sys_getrusage_before(ThreadId tid ,
5316                                             SyscallArgLayout *layout ,   5316                                             SyscallArgLayout *layout ,
5317                                             SyscallArgs *arrghs ,   5317                                             SyscallArgs *arrghs ,
5318                                             SyscallStatus *status ,   5318                                             SyscallStatus *status ,
5319                                             UWord *flags ) ;   5319                                             UWord *flags ) ;
5320 void vgSysWrap_generic_sys_getrusage_after(ThreadId tid , SyscallArgs *arrghs ,   5320 void vgSysWrap_generic_sys_getrusage_after(ThreadId tid , SyscallArgs *arrghs ,
5321                                            SyscallStatus *status ) ;   5321                                            SyscallStatus *status ) ;
5322 extern void vgSysWrap_generic_sys_stime_before(ThreadId tid ,   5322 extern void vgSysWrap_generic_sys_stime_before(ThreadId tid ,
5323                                                SyscallArgLayout *layout ,   5323                                                SyscallArgLayout *layout ,
5324                                                SyscallArgs *arrghs ,   5324                                                SyscallArgs *arrghs ,
5325                                                SyscallStatus *status ,   5325                                                SyscallStatus *status ,
5326                                                UWord *flags ) ;   5326                                                UWord *flags ) ;
5327 extern void vgSysWrap_generic_sys_stime_after(ThreadId tid ,   5327 extern void vgSysWrap_generic_sys_stime_after(ThreadId tid ,
5328                                               SyscallArgs *arrghs ,   5328                                               SyscallArgs *arrghs ,
5329                                               SyscallStatus *status ) ;   5329                                               SyscallStatus *status ) ;
5330 void vgSysWrap_generic_sys_settimeofday_before(ThreadId tid ,   5330 void vgSysWrap_generic_sys_settimeofday_before(ThreadId tid ,
5331                                                SyscallArgLayout *layout ,   5331                                                SyscallArgLayout *layout ,
5332                                                SyscallArgs *arrghs ,   5332                                                SyscallArgs *arrghs ,
5333                                                SyscallStatus *status ,   5333                                                SyscallStatus *status ,
5334                                                UWord *flags ) ;   5334                                                UWord *flags ) ;
5335 extern void vgSysWrap_generic_sys_settimeofday_after(ThreadId tid ,   5335 extern void vgSysWrap_generic_sys_settimeofday_after(ThreadId tid ,
5336                                                      SyscallArgs *arrghs ,   5336                                                      SyscallArgs *arrghs ,
5337                                                      SyscallStatus *status ) ;   5337                                                      SyscallStatus *status ) ;
5338 void vgSysWrap_generic_sys_getpriority_before(ThreadId tid ,   5338 void vgSysWrap_generic_sys_getpriority_before(ThreadId tid ,
5339                                               SyscallArgLayout *layout ,   5339                                               SyscallArgLayout *layout ,
5340                                               SyscallArgs *arrghs ,   5340                                               SyscallArgs *arrghs ,
5341                                               SyscallStatus *status ,   5341                                               SyscallStatus *status ,
5342                                               UWord *flags ) ;   5342                                               UWord *flags ) ;
5343 extern void vgSysWrap_generic_sys_getpriority_after(ThreadId tid ,   5343 extern void vgSysWrap_generic_sys_getpriority_after(ThreadId tid ,
5344                                                     SyscallArgs *arrghs ,   5344                                                     SyscallArgs *arrghs ,
5345                                                     SyscallStatus *status ) ;   5345                                                     SyscallStatus *status ) ;
5346 void vgSysWrap_generic_sys_setpriority_before(ThreadId tid ,   5346 void vgSysWrap_generic_sys_setpriority_before(ThreadId tid ,
5347                                               SyscallArgLayout *layout ,   5347                                               SyscallArgLayout *layout ,
5348                                               SyscallArgs *arrghs ,   5348                                               SyscallArgs *arrghs ,
5349                                               SyscallStatus *status ,   5349                                               SyscallStatus *status ,
5350                                               UWord *flags ) ;   5350                                               UWord *flags ) ;
5351 extern void vgSysWrap_generic_sys_setpriority_after(ThreadId tid ,   5351 extern void vgSysWrap_generic_sys_setpriority_after(ThreadId tid ,
5352                                                     SyscallArgs *arrghs ,   5352                                                     SyscallArgs *arrghs ,
5353                                                     SyscallStatus *status ) ;   5353                                                     SyscallStatus *status ) ;
5354 void vgSysWrap_generic_sys_setitimer_before(ThreadId tid ,   5354 void vgSysWrap_generic_sys_setitimer_before(ThreadId tid ,
5355                                             SyscallArgLayout *layout ,   5355                                             SyscallArgLayout *layout ,
5356                                             SyscallArgs *arrghs ,   5356                                             SyscallArgs *arrghs ,
5357                                             SyscallStatus *status ,   5357                                             SyscallStatus *status ,
5358                                             UWord *flags ) ;   5358                                             UWord *flags ) ;
5359 void vgSysWrap_generic_sys_setitimer_after(ThreadId tid , SyscallArgs *arrghs ,   5359 void vgSysWrap_generic_sys_setitimer_after(ThreadId tid , SyscallArgs *arrghs ,
5360                                            SyscallStatus *status ) ;   5360                                            SyscallStatus *status ) ;
5361 void vgSysWrap_generic_sys_getitimer_before(ThreadId tid ,   5361 void vgSysWrap_generic_sys_getitimer_before(ThreadId tid ,
5362                                             SyscallArgLayout *layout ,   5362                                             SyscallArgLayout *layout ,
5363                                             SyscallArgs *arrghs ,   5363                                             SyscallArgs *arrghs ,
5364                                             SyscallStatus *status ,   5364                                             SyscallStatus *status ,
5365                                             UWord *flags ) ;   5365                                             UWord *flags ) ;
5366 void vgSysWrap_generic_sys_getitimer_after(ThreadId tid , SyscallArgs *arrghs ,   5366 void vgSysWrap_generic_sys_getitimer_after(ThreadId tid , SyscallArgs *arrghs ,
5367                                            SyscallStatus *status ) ;   5367                                            SyscallStatus *status ) ;
5368 void vgSysWrap_generic_sys_setreuid_before(ThreadId tid ,   5368 void vgSysWrap_generic_sys_setreuid_before(ThreadId tid ,
5369                                            SyscallArgLayout *layout ,   5369                                            SyscallArgLayout *layout ,
5370                                            SyscallArgs *arrghs ,   5370                                            SyscallArgs *arrghs ,
5371                                            SyscallStatus *status , UWord *flags ) ;   5371                                            SyscallStatus *status , UWord *flags ) ;
5372 extern void vgSysWrap_generic_sys_setreuid_after(ThreadId tid ,   5372 extern void vgSysWrap_generic_sys_setreuid_after(ThreadId tid ,
5373                                                  SyscallArgs *arrghs ,   5373                                                  SyscallArgs *arrghs ,
5374                                                  SyscallStatus *status ) ;   5374                                                  SyscallStatus *status ) ;
5375 void vgSysWrap_generic_sys_setregid_before(ThreadId tid ,   5375 void vgSysWrap_generic_sys_setregid_before(ThreadId tid ,
5376                                            SyscallArgLayout *layout ,   5376                                            SyscallArgLayout *layout ,
5377                                            SyscallArgs *arrghs ,   5377                                            SyscallArgs *arrghs ,
5378                                            SyscallStatus *status , UWord *flags ) ;   5378                                            SyscallStatus *status , UWord *flags ) ;
5379 extern void vgSysWrap_generic_sys_setregid_after(ThreadId tid ,   5379 extern void vgSysWrap_generic_sys_setregid_after(ThreadId tid ,
5380                                                  SyscallArgs *arrghs ,   5380                                                  SyscallArgs *arrghs ,
5381                                                  SyscallStatus *status ) ;   5381                                                  SyscallStatus *status ) ;
5382 void vgSysWrap_generic_sys_fchown_before(ThreadId tid ,   5382 void vgSysWrap_generic_sys_fchown_before(ThreadId tid ,
5383                                          SyscallArgLayout *layout ,   5383                                          SyscallArgLayout *layout ,
5384                                          SyscallArgs *arrghs ,   5384                                          SyscallArgs *arrghs ,
5385                                          SyscallStatus *status , UWord *flags ) ;   5385                                          SyscallStatus *status , UWord *flags ) ;
5386 extern void vgSysWrap_generic_sys_fchown_after(ThreadId tid ,   5386 extern void vgSysWrap_generic_sys_fchown_after(ThreadId tid ,
5387                                                SyscallArgs *arrghs ,   5387                                                SyscallArgs *arrghs ,
5388                                                SyscallStatus *status ) ;   5388                                                SyscallStatus *status ) ;
5389 void vgSysWrap_generic_sys_setgid_before(ThreadId tid ,   5389 void vgSysWrap_generic_sys_setgid_before(ThreadId tid ,
5390                                          SyscallArgLayout *layout ,   5390                                          SyscallArgLayout *layout ,
5391                                          SyscallArgs *arrghs ,   5391                                          SyscallArgs *arrghs ,
5392                                          SyscallStatus *status , UWord *flags ) ;   5392                                          SyscallStatus *status , UWord *flags ) ;
5393 extern void vgSysWrap_generic_sys_setgid_after(ThreadId tid ,   5393 extern void vgSysWrap_generic_sys_setgid_after(ThreadId tid ,
5394                                                SyscallArgs *arrghs ,   5394                                                SyscallArgs *arrghs ,
5395                                                SyscallStatus *status ) ;   5395                                                SyscallStatus *status ) ;
5396 void vgSysWrap_generic_sys_utimes_before(ThreadId tid ,   5396 void vgSysWrap_generic_sys_utimes_before(ThreadId tid ,
5397                                          SyscallArgLayout *layout ,   5397                                          SyscallArgLayout *layout ,
5398                                          SyscallArgs *arrghs ,   5398                                          SyscallArgs *arrghs ,
5399                                          SyscallStatus *status , UWord *flags ) ;   5399                                          SyscallStatus *status , UWord *flags ) ;
5400 extern void vgSysWrap_generic_sys_utimes_after(ThreadId tid ,   5400 extern void vgSysWrap_generic_sys_utimes_after(ThreadId tid ,
5401                                                SyscallArgs *arrghs ,   5401                                                SyscallArgs *arrghs ,
5402                                                SyscallStatus *status ) ;   5402                                                SyscallStatus *status ) ;
5403 extern void vgSysWrap_generic_sys_sigaction_before(ThreadId tid ,   5403 extern void vgSysWrap_generic_sys_sigaction_before(ThreadId tid ,
5404                                                    SyscallArgLayout *layout ,   5404                                                    SyscallArgLayout *layout ,
5405                                                    SyscallArgs *arrghs ,   5405                                                    SyscallArgs *arrghs ,
5406                                                    SyscallStatus *status ,   5406                                                    SyscallStatus *status ,
5407                                                    UWord *flags ) ;   5407                                                    UWord *flags ) ;
5408 extern void vgSysWrap_generic_sys_sigaction_after(ThreadId tid ,   5408 extern void vgSysWrap_generic_sys_sigaction_after(ThreadId tid ,
5409                                                   SyscallArgs *arrghs ,   5409                                                   SyscallArgs *arrghs ,
5410                                                   SyscallStatus *status ) ;   5410                                                   SyscallStatus *status ) ;
5411 void vgSysWrap_generic_sys_newstat_before(ThreadId tid ,   5411 void vgSysWrap_generic_sys_newstat_before(ThreadId tid ,
5412                                           SyscallArgLayout *layout ,   5412                                           SyscallArgLayout *layout ,
5413                                           SyscallArgs *arrghs ,   5413                                           SyscallArgs *arrghs ,
5414                                           SyscallStatus *status , UWord *flags ) ;   5414                                           SyscallStatus *status , UWord *flags ) ;
5415 void vgSysWrap_generic_sys_newstat_after(ThreadId tid , SyscallArgs *arrghs ,   5415 void vgSysWrap_generic_sys_newstat_after(ThreadId tid , SyscallArgs *arrghs ,
5416                                          SyscallStatus *status ) ;   5416                                          SyscallStatus *status ) ;
5417 void vgSysWrap_generic_sys_newlstat_before(ThreadId tid ,   5417 void vgSysWrap_generic_sys_newlstat_before(ThreadId tid ,
5418                                            SyscallArgLayout *layout ,   5418                                            SyscallArgLayout *layout ,
5419                                            SyscallArgs *arrghs ,   5419                                            SyscallArgs *arrghs ,
5420                                            SyscallStatus *status , UWord *flags ) ;   5420                                            SyscallStatus *status , UWord *flags ) ;
5421 void vgSysWrap_generic_sys_newlstat_after(ThreadId tid , SyscallArgs *arrghs ,   5421 void vgSysWrap_generic_sys_newlstat_after(ThreadId tid , SyscallArgs *arrghs ,
5422                                           SyscallStatus *status ) ;   5422                                           SyscallStatus *status ) ;
5423 void vgSysWrap_generic_sys_newfstat_before(ThreadId tid ,   5423 void vgSysWrap_generic_sys_newfstat_before(ThreadId tid ,
5424                                            SyscallArgLayout *layout ,   5424                                            SyscallArgLayout *layout ,
5425                                            SyscallArgs *arrghs ,   5425                                            SyscallArgs *arrghs ,
5426                                            SyscallStatus *status , UWord *flags ) ;   5426                                            SyscallStatus *status , UWord *flags ) ;
5427 void vgSysWrap_generic_sys_newfstat_after(ThreadId tid , SyscallArgs *arrghs ,   5427 void vgSysWrap_generic_sys_newfstat_after(ThreadId tid , SyscallArgs *arrghs ,
5428                                           SyscallStatus *status ) ;   5428                                           SyscallStatus *status ) ;
5429 extern void vgSysWrap_generic_sys_ptrace_before(ThreadId tid ,   5429 extern void vgSysWrap_generic_sys_ptrace_before(ThreadId tid ,
5430                                                 SyscallArgLayout *layout ,   5430                                                 SyscallArgLayout *layout ,
5431                                                 SyscallArgs *arrghs ,   5431                                                 SyscallArgs *arrghs ,
5432                                                 SyscallStatus *status ,   5432                                                 SyscallStatus *status ,
5433                                                 UWord *flags ) ;   5433                                                 UWord *flags ) ;
5434 extern void vgSysWrap_generic_sys_ptrace_after(ThreadId tid ,   5434 extern void vgSysWrap_generic_sys_ptrace_after(ThreadId tid ,
5435                                                SyscallArgs *arrghs ,   5435                                                SyscallArgs *arrghs ,
5436                                                SyscallStatus *status ) ;   5436                                                SyscallStatus *status ) ;
5437 void vgSysWrap_generic_sys_setrlimit_before(ThreadId tid ,   5437 void vgSysWrap_generic_sys_setrlimit_before(ThreadId tid ,
5438                                             SyscallArgLayout *layout ,   5438                                             SyscallArgLayout *layout ,
5439                                             SyscallArgs *arrghs ,   5439                                             SyscallArgs *arrghs ,
5440                                             SyscallStatus *status ,   5440                                             SyscallStatus *status ,
5441                                             UWord *flags ) ;   5441                                             UWord *flags ) ;
5442 extern void vgSysWrap_generic_sys_setrlimit_after(ThreadId tid ,   5442 extern void vgSysWrap_generic_sys_setrlimit_after(ThreadId tid ,
5443                                                   SyscallArgs *arrghs ,   5443                                                   SyscallArgs *arrghs ,
5444                                                   SyscallStatus *status ) ;   5444                                                   SyscallStatus *status ) ;
5445 void vgSysWrap_generic_sys_old_getrlimit_before(ThreadId tid ,   5445 void vgSysWrap_generic_sys_old_getrlimit_before(ThreadId tid ,
5446                                                 SyscallArgLayout *layout ,   5446                                                 SyscallArgLayout *layout ,
5447                                                 SyscallArgs *arrghs ,   5447                                                 SyscallArgs *arrghs ,
5448                                                 SyscallStatus *status ,   5448                                                 SyscallStatus *status ,
5449                                                 UWord *flags ) ;   5449                                                 UWord *flags ) ;
5450 void vgSysWrap_generic_sys_old_getrlimit_after(ThreadId tid ,   5450 void vgSysWrap_generic_sys_old_getrlimit_after(ThreadId tid ,
5451                                                SyscallArgs *arrghs ,   5451                                                SyscallArgs *arrghs ,
5452                                                SyscallStatus *status ) ;   5452                                                SyscallStatus *status ) ;
5453 void vgSysWrap_generic_sys_statfs_before(ThreadId tid ,   5453 void vgSysWrap_generic_sys_statfs_before(ThreadId tid ,
5454                                          SyscallArgLayout *layout ,   5454                                          SyscallArgLayout *layout ,
5455                                          SyscallArgs *arrghs ,   5455                                          SyscallArgs *arrghs ,
5456                                          SyscallStatus *status , UWord *flags ) ;   5456                                          SyscallStatus *status , UWord *flags ) ;
5457 void vgSysWrap_generic_sys_statfs_after(ThreadId tid , SyscallArgs *arrghs ,   5457 void vgSysWrap_generic_sys_statfs_after(ThreadId tid , SyscallArgs *arrghs ,
5458                                         SyscallStatus *status ) ;   5458                                         SyscallStatus *status ) ;
5459 void vgSysWrap_generic_sys_fstatfs_before(ThreadId tid ,   5459 void vgSysWrap_generic_sys_fstatfs_before(ThreadId tid ,
5460                                           SyscallArgLayout *layout ,   5460                                           SyscallArgLayout *layout ,
5461                                           SyscallArgs *arrghs ,   5461                                           SyscallArgs *arrghs ,
5462                                           SyscallStatus *status , UWord *flags ) ;   5462                                           SyscallStatus *status , UWord *flags ) ;
5463 void vgSysWrap_generic_sys_fstatfs_after(ThreadId tid , SyscallArgs *arrghs ,   5463 void vgSysWrap_generic_sys_fstatfs_after(ThreadId tid , SyscallArgs *arrghs ,
5464                                          SyscallStatus *status ) ;   5464                                          SyscallStatus *status ) ;
5465 void vgSysWrap_generic_sys_iopl_before(ThreadId tid , SyscallArgLayout *layout ,   5465 void vgSysWrap_generic_sys_iopl_before(ThreadId tid , SyscallArgLayout *layout ,
5466                                        SyscallArgs *arrghs ,   5466                                        SyscallArgs *arrghs ,
5467                                        SyscallStatus *status , UWord *flags ) ;   5467                                        SyscallStatus *status , UWord *flags ) ;
5468 extern void vgSysWrap_generic_sys_iopl_after(ThreadId tid ,   5468 extern void vgSysWrap_generic_sys_iopl_after(ThreadId tid ,
5469                                              SyscallArgs *arrghs ,   5469                                              SyscallArgs *arrghs ,
5470                                              SyscallStatus *status ) ;   5470                                              SyscallStatus *status ) ;
5471 extern void vgSysWrap_generic_sys_ipc_before(ThreadId tid ,   5471 extern void vgSysWrap_generic_sys_ipc_before(ThreadId tid ,
5472                                              SyscallArgLayout *layout ,   5472                                              SyscallArgLayout *layout ,
5473                                              SyscallArgs *arrghs ,   5473                                              SyscallArgs *arrghs ,
5474                                              SyscallStatus *status ,   5474                                              SyscallStatus *status ,
5475                                              UWord *flags ) ;   5475                                              UWord *flags ) ;
5476 extern void vgSysWrap_generic_sys_ipc_after(ThreadId tid , SyscallArgs *arrghs ,   5476 extern void vgSysWrap_generic_sys_ipc_after(ThreadId tid , SyscallArgs *arrghs ,
5477                                             SyscallStatus *status ) ;   5477                                             SyscallStatus *status ) ;
5478 void vgSysWrap_generic_sys_newuname_before(ThreadId tid ,   5478 void vgSysWrap_generic_sys_newuname_before(ThreadId tid ,
5479                                            SyscallArgLayout *layout ,   5479                                            SyscallArgLayout *layout ,
5480                                            SyscallArgs *arrghs ,   5480                                            SyscallArgs *arrghs ,
5481                                            SyscallStatus *status , UWord *flags ) ;   5481                                            SyscallStatus *status , UWord *flags ) ;
5482 void vgSysWrap_generic_sys_newuname_after(ThreadId tid , SyscallArgs *arrghs ,   5482 void vgSysWrap_generic_sys_newuname_after(ThreadId tid , SyscallArgs *arrghs ,
5483                                           SyscallStatus *status ) ;   5483                                           SyscallStatus *status ) ;
5484 void vgSysWrap_generic_sys_pread64_before(ThreadId tid ,   5484 void vgSysWrap_generic_sys_pread64_before(ThreadId tid ,
5485                                           SyscallArgLayout *layout ,   5485                                           SyscallArgLayout *layout ,
5486                                           SyscallArgs *arrghs ,   5486                                           SyscallArgs *arrghs ,
5487                                           SyscallStatus *status , UWord *flags ) ;   5487                                           SyscallStatus *status , UWord *flags ) ;
5488 void vgSysWrap_generic_sys_pread64_after(ThreadId tid , SyscallArgs *arrghs ,   5488 void vgSysWrap_generic_sys_pread64_after(ThreadId tid , SyscallArgs *arrghs ,
5489                                          SyscallStatus *status ) ;   5489                                          SyscallStatus *status ) ;
5490 void vgSysWrap_generic_sys_pwrite64_before(ThreadId tid ,   5490 void vgSysWrap_generic_sys_pwrite64_before(ThreadId tid ,
5491                                            SyscallArgLayout *layout ,   5491                                            SyscallArgLayout *layout ,
5492                                            SyscallArgs *arrghs ,   5492                                            SyscallArgs *arrghs ,
5493                                            SyscallStatus *status , UWord *flags ) ;   5493                                            SyscallStatus *status , UWord *flags ) ;
5494 extern void vgSysWrap_generic_sys_pwrite64_after(ThreadId tid ,   5494 extern void vgSysWrap_generic_sys_pwrite64_after(ThreadId tid ,
5495                                                  SyscallArgs *arrghs ,   5495                                                  SyscallArgs *arrghs ,
5496                                                  SyscallStatus *status ) ;   5496                                                  SyscallStatus *status ) ;
5497 void vgSysWrap_generic_sys_sigaltstack_before(ThreadId tid ,   5497 void vgSysWrap_generic_sys_sigaltstack_before(ThreadId tid ,
5498                                               SyscallArgLayout *layout ,   5498                                               SyscallArgLayout *layout ,
5499                                               SyscallArgs *arrghs ,   5499                                               SyscallArgs *arrghs ,
5500                                               SyscallStatus *status ,   5500                                               SyscallStatus *status ,
5501                                               UWord *flags ) ;   5501                                               UWord *flags ) ;
5502 void vgSysWrap_generic_sys_sigaltstack_after(ThreadId tid ,   5502 void vgSysWrap_generic_sys_sigaltstack_after(ThreadId tid ,
5503                                              SyscallArgs *arrghs ,   5503                                              SyscallArgs *arrghs ,
5504                                              SyscallStatus *status ) ;   5504                                              SyscallStatus *status ) ;
5505 void vgSysWrap_generic_sys_getpmsg_before(ThreadId tid ,   5505 void vgSysWrap_generic_sys_getpmsg_before(ThreadId tid ,
5506                                           SyscallArgLayout *layout ,   5506                                           SyscallArgLayout *layout ,
5507                                           SyscallArgs *arrghs ,   5507                                           SyscallArgs *arrghs ,
5508                                           SyscallStatus *status , UWord *flags ) ;   5508                                           SyscallStatus *status , UWord *flags ) ;
5509 void vgSysWrap_generic_sys_getpmsg_after(ThreadId tid , SyscallArgs *arrghs ,   5509 void vgSysWrap_generic_sys_getpmsg_after(ThreadId tid , SyscallArgs *arrghs ,
5510                                          SyscallStatus *status ) ;   5510                                          SyscallStatus *status ) ;
5511 void vgSysWrap_generic_sys_putpmsg_before(ThreadId tid ,   5511 void vgSysWrap_generic_sys_putpmsg_before(ThreadId tid ,
5512                                           SyscallArgLayout *layout ,   5512                                           SyscallArgLayout *layout ,
5513                                           SyscallArgs *arrghs ,   5513                                           SyscallArgs *arrghs ,
5514                                           SyscallStatus *status , UWord *flags ) ;   5514                                           SyscallStatus *status , UWord *flags ) ;
5515 extern void vgSysWrap_generic_sys_putpmsg_after(ThreadId tid ,   5515 extern void vgSysWrap_generic_sys_putpmsg_after(ThreadId tid ,
5516                                                 SyscallArgs *arrghs ,   5516                                                 SyscallArgs *arrghs ,
5517                                                 SyscallStatus *status ) ;   5517                                                 SyscallStatus *status ) ;
5518 void vgSysWrap_generic_sys_getrlimit_before(ThreadId tid ,   5518 void vgSysWrap_generic_sys_getrlimit_before(ThreadId tid ,
5519                                             SyscallArgLayout *layout ,   5519                                             SyscallArgLayout *layout ,
5520                                             SyscallArgs *arrghs ,   5520                                             SyscallArgs *arrghs ,
5521                                             SyscallStatus *status ,   5521                                             SyscallStatus *status ,
5522                                             UWord *flags ) ;   5522                                             UWord *flags ) ;
5523 void vgSysWrap_generic_sys_getrlimit_after(ThreadId tid , SyscallArgs *arrghs ,   5523 void vgSysWrap_generic_sys_getrlimit_after(ThreadId tid , SyscallArgs *arrghs ,
5524                                            SyscallStatus *status ) ;   5524                                            SyscallStatus *status ) ;
5525 void vgSysWrap_generic_sys_truncate64_before(ThreadId tid ,   5525 void vgSysWrap_generic_sys_truncate64_before(ThreadId tid ,
5526                                              SyscallArgLayout *layout ,   5526                                              SyscallArgLayout *layout ,
5527                                              SyscallArgs *arrghs ,   5527                                              SyscallArgs *arrghs ,
5528                                              SyscallStatus *status ,   5528                                              SyscallStatus *status ,
5529                                              UWord *flags ) ;   5529                                              UWord *flags ) ;
5530 extern void vgSysWrap_generic_sys_truncate64_after(ThreadId tid ,   5530 extern void vgSysWrap_generic_sys_truncate64_after(ThreadId tid ,
5531                                                    SyscallArgs *arrghs ,   5531                                                    SyscallArgs *arrghs ,
5532                                                    SyscallStatus *status ) ;   5532                                                    SyscallStatus *status ) ;
5533 void vgSysWrap_generic_sys_ftruncate64_before(ThreadId tid ,   5533 void vgSysWrap_generic_sys_ftruncate64_before(ThreadId tid ,
5534                                               SyscallArgLayout *layout ,   5534                                               SyscallArgLayout *layout ,
5535                                               SyscallArgs *arrghs ,   5535                                               SyscallArgs *arrghs ,
5536                                               SyscallStatus *status ,   5536                                               SyscallStatus *status ,
5537                                               UWord *flags ) ;   5537                                               UWord *flags ) ;
5538 extern void vgSysWrap_generic_sys_ftruncate64_after(ThreadId tid ,   5538 extern void vgSysWrap_generic_sys_ftruncate64_after(ThreadId tid ,
5539                                                     SyscallArgs *arrghs ,   5539                                                     SyscallArgs *arrghs ,
5540                                                     SyscallStatus *status ) ;   5540                                                     SyscallStatus *status ) ;
5541 void vgSysWrap_generic_sys_lchown_before(ThreadId tid ,   5541 void vgSysWrap_generic_sys_lchown_before(ThreadId tid ,
5542                                          SyscallArgLayout *layout ,   5542                                          SyscallArgLayout *layout ,
5543                                          SyscallArgs *arrghs ,   5543                                          SyscallArgs *arrghs ,
5544                                          SyscallStatus *status , UWord *flags ) ;   5544                                          SyscallStatus *status , UWord *flags ) ;
5545 extern void vgSysWrap_generic_sys_lchown_after(ThreadId tid ,   5545 extern void vgSysWrap_generic_sys_lchown_after(ThreadId tid ,
5546                                                SyscallArgs *arrghs ,   5546                                                SyscallArgs *arrghs ,
5547                                                SyscallStatus *status ) ;   5547                                                SyscallStatus *status ) ;
5548 void vgSysWrap_generic_sys_mincore_before(ThreadId tid ,   5548 void vgSysWrap_generic_sys_mincore_before(ThreadId tid ,
5549                                           SyscallArgLayout *layout ,   5549                                           SyscallArgLayout *layout ,
5550                                           SyscallArgs *arrghs ,   5550                                           SyscallArgs *arrghs ,
5551                                           SyscallStatus *status , UWord *flags ) ;   5551                                           SyscallStatus *status , UWord *flags ) ;
5552 void vgSysWrap_generic_sys_mincore_after(ThreadId tid , SyscallArgs *arrghs ,   5552 void vgSysWrap_generic_sys_mincore_after(ThreadId tid , SyscallArgs *arrghs ,
5553                                          SyscallStatus *status ) ;   5553                                          SyscallStatus *status ) ;
5554 void vgSysWrap_generic_sys_getdents64_before(ThreadId tid ,   5554 void vgSysWrap_generic_sys_getdents64_before(ThreadId tid ,
5555                                              SyscallArgLayout *layout ,   5555                                              SyscallArgLayout *layout ,
5556                                              SyscallArgs *arrghs ,   5556                                              SyscallArgs *arrghs ,
5557                                              SyscallStatus *status ,   5557                                              SyscallStatus *status ,
5558                                              UWord *flags ) ;   5558                                              UWord *flags ) ;
5559 void vgSysWrap_generic_sys_getdents64_after(ThreadId tid , SyscallArgs *arrghs ,   5559 void vgSysWrap_generic_sys_getdents64_after(ThreadId tid , SyscallArgs *arrghs ,
5560                                             SyscallStatus *status ) ;   5560                                             SyscallStatus *status ) ;
5561 void vgSysWrap_generic_sys_statfs64_before(ThreadId tid ,   5561 void vgSysWrap_generic_sys_statfs64_before(ThreadId tid ,
5562                                            SyscallArgLayout *layout ,   5562                                            SyscallArgLayout *layout ,
5563                                            SyscallArgs *arrghs ,   5563                                            SyscallArgs *arrghs ,
5564                                            SyscallStatus *status , UWord *flags ) ;   5564                                            SyscallStatus *status , UWord *flags ) ;
5565 void vgSysWrap_generic_sys_statfs64_after(ThreadId tid , SyscallArgs *arrghs ,   5565 void vgSysWrap_generic_sys_statfs64_after(ThreadId tid , SyscallArgs *arrghs ,
5566                                           SyscallStatus *status ) ;   5566                                           SyscallStatus *status ) ;
5567 void vgSysWrap_generic_sys_fstatfs64_before(ThreadId tid ,   5567 void vgSysWrap_generic_sys_fstatfs64_before(ThreadId tid ,
5568                                             SyscallArgLayout *layout ,   5568                                             SyscallArgLayout *layout ,
5569                                             SyscallArgs *arrghs ,   5569                                             SyscallArgs *arrghs ,
5570                                             SyscallStatus *status ,   5570                                             SyscallStatus *status ,
5571                                             UWord *flags ) ;   5571                                             UWord *flags ) ;
5572 void vgSysWrap_generic_sys_fstatfs64_after(ThreadId tid , SyscallArgs *arrghs ,   5572 void vgSysWrap_generic_sys_fstatfs64_after(ThreadId tid , SyscallArgs *arrghs ,
5573                                            SyscallStatus *status ) ;   5573                                            SyscallStatus *status ) ;
5574 void vgModuleLocal_generic_PRE_sys_socketpair(ThreadId tid , UWord arg0 ,   5574 void vgModuleLocal_generic_PRE_sys_socketpair(ThreadId tid , UWord arg0 ,
5575                                               UWord arg1 , UWord arg2 ,   5575                                               UWord arg1 , UWord arg2 ,
5576                                               UWord arg3 ) ;   5576                                               UWord arg3 ) ;
5577 SysRes vgModuleLocal_generic_POST_sys_socketpair(ThreadId tid , SysRes res ,   5577 SysRes vgModuleLocal_generic_POST_sys_socketpair(ThreadId tid , SysRes res ,
5578                                                  UWord arg0 , UWord arg1 ,   5578                                                  UWord arg0 , UWord arg1 ,
5579                                                  UWord arg2 , UWord arg3 ) ;   5579                                                  UWord arg2 , UWord arg3 ) ;
5580 SysRes vgModuleLocal_generic_POST_sys_socket(ThreadId tid , SysRes res ) ;   5580 SysRes vgModuleLocal_generic_POST_sys_socket(ThreadId tid , SysRes res ) ;
5581 void vgModuleLocal_generic_PRE_sys_bind(ThreadId tid , UWord arg0 , UWord arg1 ,   5581 void vgModuleLocal_generic_PRE_sys_bind(ThreadId tid , UWord arg0 , UWord arg1 ,
5582                                         UWord arg2 ) ;   5582                                         UWord arg2 ) ;
5583 void vgModuleLocal_generic_PRE_sys_accept(ThreadId tid , UWord arg0 ,   5583 void vgModuleLocal_generic_PRE_sys_accept(ThreadId tid , UWord arg0 ,
5584                                           UWord arg1 , UWord arg2 ) ;   5584                                           UWord arg1 , UWord arg2 ) ;
5585 SysRes vgModuleLocal_generic_POST_sys_accept(ThreadId tid , SysRes res ,   5585 SysRes vgModuleLocal_generic_POST_sys_accept(ThreadId tid , SysRes res ,
5586                                              UWord arg0 , UWord arg1 ,   5586                                              UWord arg0 , UWord arg1 ,
5587                                              UWord arg2 ) ;   5587                                              UWord arg2 ) ;
5588 void vgModuleLocal_generic_PRE_sys_sendto(ThreadId tid , UWord arg0 ,   5588 void vgModuleLocal_generic_PRE_sys_sendto(ThreadId tid , UWord arg0 ,
5589                                           UWord arg1 , UWord arg2 , UWord arg3 ,   5589                                           UWord arg1 , UWord arg2 , UWord arg3 ,
5590                                           UWord arg4 , UWord arg5 ) ;   5590                                           UWord arg4 , UWord arg5 ) ;
5591 void vgModuleLocal_generic_PRE_sys_send(ThreadId tid , UWord arg0 , UWord arg1 ,   5591 void vgModuleLocal_generic_PRE_sys_send(ThreadId tid , UWord arg0 , UWord arg1 ,
5592                                         UWord arg2 ) ;   5592                                         UWord arg2 ) ;
5593 void vgModuleLocal_generic_PRE_sys_recvfrom(ThreadId tid , UWord arg0 ,   5593 void vgModuleLocal_generic_PRE_sys_recvfrom(ThreadId tid , UWord arg0 ,
5594                                             UWord arg1 , UWord arg2 ,   5594                                             UWord arg1 , UWord arg2 ,
5595                                             UWord arg3 , UWord arg4 ,   5595                                             UWord arg3 , UWord arg4 ,
5596                                             UWord arg5 ) ;   5596                                             UWord arg5 ) ;
5597 void vgModuleLocal_generic_POST_sys_recvfrom(ThreadId tid , SysRes res ,   5597 void vgModuleLocal_generic_POST_sys_recvfrom(ThreadId tid , SysRes res ,
5598                                              UWord arg0 , UWord arg1 ,   5598                                              UWord arg0 , UWord arg1 ,
5599                                              UWord arg2 , UWord arg3 ,   5599                                              UWord arg2 , UWord arg3 ,
5600                                              UWord arg4 , UWord arg5 ) ;   5600                                              UWord arg4 , UWord arg5 ) ;
5601 void vgModuleLocal_generic_PRE_sys_recv(ThreadId tid , UWord arg0 , UWord arg1 ,   5601 void vgModuleLocal_generic_PRE_sys_recv(ThreadId tid , UWord arg0 , UWord arg1 ,
5602                                         UWord arg2 ) ;   5602                                         UWord arg2 ) ;
5603 void vgModuleLocal_generic_POST_sys_recv(ThreadId tid , UWord res , UWord arg0 ,   5603 void vgModuleLocal_generic_POST_sys_recv(ThreadId tid , UWord res , UWord arg0 ,
5604                                          UWord arg1 , UWord arg2 ) ;   5604                                          UWord arg1 , UWord arg2 ) ;
5605 void vgModuleLocal_generic_PRE_sys_connect(ThreadId tid , UWord arg0 ,   5605 void vgModuleLocal_generic_PRE_sys_connect(ThreadId tid , UWord arg0 ,
5606                                            UWord arg1 , UWord arg2 ) ;   5606                                            UWord arg1 , UWord arg2 ) ;
5607 void vgModuleLocal_generic_PRE_sys_setsockopt(ThreadId tid , UWord arg0 ,   5607 void vgModuleLocal_generic_PRE_sys_setsockopt(ThreadId tid , UWord arg0 ,
5608                                               UWord arg1 , UWord arg2 ,   5608                                               UWord arg1 , UWord arg2 ,
5609                                               UWord arg3 , UWord arg4 ) ;   5609                                               UWord arg3 , UWord arg4 ) ;
5610 void vgModuleLocal_generic_PRE_sys_getsockname(ThreadId tid , UWord arg0 ,   5610 void vgModuleLocal_generic_PRE_sys_getsockname(ThreadId tid , UWord arg0 ,
5611                                                UWord arg1 , UWord arg2 ) ;   5611                                                UWord arg1 , UWord arg2 ) ;
5612 void vgModuleLocal_generic_POST_sys_getsockname(ThreadId tid , SysRes res ,   5612 void vgModuleLocal_generic_POST_sys_getsockname(ThreadId tid , SysRes res ,
5613                                                 UWord arg0 , UWord arg1 ,   5613                                                 UWord arg0 , UWord arg1 ,
5614                                                 UWord arg2 ) ;   5614                                                 UWord arg2 ) ;
5615 void vgModuleLocal_generic_PRE_sys_getpeername(ThreadId tid , UWord arg0 ,   5615 void vgModuleLocal_generic_PRE_sys_getpeername(ThreadId tid , UWord arg0 ,
5616                                                UWord arg1 , UWord arg2 ) ;   5616                                                UWord arg1 , UWord arg2 ) ;
5617 void vgModuleLocal_generic_POST_sys_getpeername(ThreadId tid , SysRes res ,   5617 void vgModuleLocal_generic_POST_sys_getpeername(ThreadId tid , SysRes res ,
5618                                                 UWord arg0 , UWord arg1 ,   5618                                                 UWord arg0 , UWord arg1 ,
5619                                                 UWord arg2 ) ;   5619                                                 UWord arg2 ) ;
5620 void vgModuleLocal_generic_PRE_sys_sendmsg(ThreadId tid , Char *name ,   5620 void vgModuleLocal_generic_PRE_sys_sendmsg(ThreadId tid , Char *name ,
5621                                            struct vki_msghdr *msg ) ;   5621                                            struct vki_msghdr *msg ) ;
5622 void vgModuleLocal_generic_PRE_sys_recvmsg(ThreadId tid , Char *name ,   5622 void vgModuleLocal_generic_PRE_sys_recvmsg(ThreadId tid , Char *name ,
5623                                            struct vki_msghdr *msg ) ;   5623                                            struct vki_msghdr *msg ) ;
5624 void vgModuleLocal_generic_POST_sys_recvmsg(ThreadId tid , Char *name ,   5624 void vgModuleLocal_generic_POST_sys_recvmsg(ThreadId tid , Char *name ,
5625                                             struct vki_msghdr *msg ,   5625                                             struct vki_msghdr *msg ,
5626                                             UInt length ) ;   5626                                             UInt length ) ;
5627 void vgModuleLocal_generic_PRE_sys_semop(ThreadId tid , UWord arg0 ,   5627 void vgModuleLocal_generic_PRE_sys_semop(ThreadId tid , UWord arg0 ,
5628                                          UWord arg1 , UWord arg2 ) ;   5628                                          UWord arg1 , UWord arg2 ) ;
5629 void vgModuleLocal_generic_PRE_sys_semtimedop(ThreadId tid , UWord arg0 ,   5629 void vgModuleLocal_generic_PRE_sys_semtimedop(ThreadId tid , UWord arg0 ,
5630                                               UWord arg1 , UWord arg2 ,   5630                                               UWord arg1 , UWord arg2 ,
5631                                               UWord arg3 ) ;   5631                                               UWord arg3 ) ;
5632 void vgModuleLocal_generic_PRE_sys_semctl(ThreadId tid , UWord arg0 ,   5632 void vgModuleLocal_generic_PRE_sys_semctl(ThreadId tid , UWord arg0 ,
5633                                           UWord arg1 , UWord arg2 , UWord arg3 ) ;   5633                                           UWord arg1 , UWord arg2 , UWord arg3 ) ;
5634 void vgModuleLocal_generic_POST_sys_semctl(ThreadId tid , UWord res ,   5634 void vgModuleLocal_generic_POST_sys_semctl(ThreadId tid , UWord res ,
5635                                            UWord arg0 , UWord arg1 ,   5635                                            UWord arg0 , UWord arg1 ,
5636                                            UWord arg2 , UWord arg3 ) ;   5636                                            UWord arg2 , UWord arg3 ) ;
5637 UWord vgModuleLocal_generic_PRE_sys_shmat(ThreadId tid , UWord arg0 ,   5637 UWord vgModuleLocal_generic_PRE_sys_shmat(ThreadId tid , UWord arg0 ,
5638                                           UWord arg1 , UWord arg2 ) ;   5638                                           UWord arg1 , UWord arg2 ) ;
5639 void vgModuleLocal_generic_POST_sys_shmat(ThreadId tid , UWord res ,   5639 void vgModuleLocal_generic_POST_sys_shmat(ThreadId tid , UWord res ,
5640                                           UWord arg0 , UWord arg1 , UWord arg2 ) ;   5640                                           UWord arg0 , UWord arg1 , UWord arg2 ) ;
5641 Bool vgModuleLocal_generic_PRE_sys_shmdt(ThreadId tid , UWord arg0 ) ;   5641 Bool vgModuleLocal_generic_PRE_sys_shmdt(ThreadId tid , UWord arg0 ) ;
5642 void vgModuleLocal_generic_POST_sys_shmdt(ThreadId tid , UWord res , UWord arg0 ) ;   5642 void vgModuleLocal_generic_POST_sys_shmdt(ThreadId tid , UWord res , UWord arg0 ) ;
5643 void vgModuleLocal_generic_PRE_sys_shmctl(ThreadId tid , UWord arg0 ,   5643 void vgModuleLocal_generic_PRE_sys_shmctl(ThreadId tid , UWord arg0 ,
5644                                           UWord arg1 , UWord arg2 ) ;   5644                                           UWord arg1 , UWord arg2 ) ;
5645 void vgModuleLocal_generic_POST_sys_shmctl(ThreadId tid , UWord res ,   5645 void vgModuleLocal_generic_POST_sys_shmctl(ThreadId tid , UWord res ,
5646                                            UWord arg0 , UWord arg1 , UWord arg2 ) ;   5646                                            UWord arg0 , UWord arg1 , UWord arg2 ) ;
5647 SysRes vgModuleLocal_generic_PRE_sys_mmap(ThreadId tid , UWord arg1 ,   5647 SysRes vgModuleLocal_generic_PRE_sys_mmap(ThreadId tid , UWord arg1 ,
5648                                           UWord arg2 , UWord arg3 , UWord arg4 ,   5648                                           UWord arg2 , UWord arg3 , UWord arg4 ,
5649                                           UWord arg5 , Off64T arg6 ) ;   5649                                           UWord arg5 , Off64T arg6 ) ;
5650 Bool vgModuleLocal_valid_client_addr(Addr start , SizeT size , ThreadId tid ,   5650 Bool vgModuleLocal_valid_client_addr(Addr start , SizeT size , ThreadId tid ,
5651                                      Char const   *syscallname )   5651                                      Char const   *syscallname )
5652 {   5652 {
5653   Bool ret ;   5653   Bool ret ;
5654     5654  
5655   {   5655   {
5656   if (size == 0UL) {   5656   if (size == 0UL) {
5657     return ((Bool )1);   5657     return ((Bool )1);
5658   } else {   5658   } else {
5659     5659  
5660   }   5660   }
5661   ret = vgPlain_am_is_valid_for_client_or_free_or_resvn(start, size, (UInt )0);   5661   ret = vgPlain_am_is_valid_for_client_or_free_or_resvn(start, size, (UInt )0);
5662   if (! ret) {   5662   if (! ret) {
5663     if ((unsigned int )syscallname != (unsigned int )((void *)0)) {   5663     if ((unsigned int )syscallname != (unsigned int )((void *)0)) {
5664       vgPlain_message((VgMsgKind )1,   5664       vgPlain_message((VgMsgKind )1,
5665                       "Warning: client syscall %s tried to modify addresses %#lx-%#lx\n",   5665                       "Warning: client syscall %s tried to modify addresses %#lx-%#lx\n",
5666                       syscallname, start, (start + size) - 1UL);   5666                       syscallname, start, (start + size) - 1UL);
5667       if (vgPlain_clo_verbosity > 1) {   5667       if (vgPlain_clo_verbosity > 1) {
5668         vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);   5668         vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);
5669       } else {   5669       } else {
5670     5670  
5671       }   5671       }
5672     } else {   5672     } else {
5673     5673  
5674     }   5674     }
5675   } else {   5675   } else {
5676     5676  
5677   }   5677   }
5678   return (ret);   5678   return (ret);
5679 }   5679 }
5680 }   5680 }
5681 Bool vgModuleLocal_client_signal_OK(Int sigNo )   5681 Bool vgModuleLocal_client_signal_OK(Int sigNo )
5682 {   5682 {
5683   Bool ret ;   5683   Bool ret ;
5684   int tmp ;   5684   int tmp ;
5685     5685  
5686   {   5686   {
5687   if (sigNo >= 0) {   5687   if (sigNo >= 0) {
5688     if (sigNo <= vgPlain_max_signal - 1) {   5688     if (sigNo <= vgPlain_max_signal - 1) {
5689       tmp = 1;   5689       tmp = 1;
5690     } else {   5690     } else {
5691       tmp = 0;   5691       tmp = 0;
5692     }   5692     }
5693   } else {   5693   } else {
5694     tmp = 0;   5694     tmp = 0;
5695   }   5695   }
5696   ret = (Bool )tmp;   5696   ret = (Bool )tmp;
5697   return (ret);   5697   return (ret);
5698 }   5698 }
5699 }   5699 }
5700 Bool vgModuleLocal_safe_to_deref(void *start , SizeT size )   5700 Bool vgModuleLocal_safe_to_deref(void *start , SizeT size )
5701 {   5701 {
5702   Bool tmp ;   5702   Bool tmp ;
5703     5703  
5704   {   5704   {
5705   tmp = vgPlain_am_is_valid_for_client((Addr )start, size, (UInt )1);   5705   tmp = vgPlain_am_is_valid_for_client((Addr )start, size, (UInt )1);
5706   return (tmp);   5706   return (tmp);
5707 }   5707 }
5708 }   5708 }
5709 static void page_align_addr_and_len(Addr *a , SizeT *len )   5709 static void page_align_addr_and_len(Addr *a , SizeT *len )
5710 {   5710 {
5711   Addr ra ;   5711   Addr ra ;
5712     5712  
5713   {   5713   {
5714   ra = *a & ~ ((1UL << 12) - 1UL);   5714   ra = *a & ~ ((1UL << 12) - 1UL);
5715   *len = ((((*a + *len) + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)) - ra;   5715   *len = ((((*a + *len) + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)) - ra;
5716   *a = ra;   5716   *a = ra;
5717   return;   5717   return;
5718 }   5718 }
5719 }   5719 }
5720 static void notify_core_of_mmap(Addr a , SizeT len , UInt prot , UInt flags ,   5720 static void notify_core_of_mmap(Addr a , SizeT len , UInt prot , UInt flags ,
5721                                 Int fd , Off64T offset )   5721                                 Int fd , Off64T offset )
5722 {   5722 {
5723   Bool d ;   5723   Bool d ;
5724   long tmp ;   5724   long tmp ;
5725     5725  
5726   {   5726   {
5727   tmp = __builtin_expect((long )(! (! (0UL == (a & ((1UL << 12) - 1UL))))), 1L);   5727   tmp = __builtin_expect((long )(! (! (0UL == (a & ((1UL << 12) - 1UL))))), 1L);
5728   if (tmp) {   5728   if (tmp) {
5729     5729  
5730   } else {   5730   } else {
5731     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(a)",   5731     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(a)",
5732                         (Char const   *)"m_syswrap/syswrap-generic.c", 151,   5732                         (Char const   *)"m_syswrap/syswrap-generic.c", 151,
5733                         (Char const   *)"notify_core_of_mmap", "");   5733                         (Char const   *)"notify_core_of_mmap", "");
5734   }   5734   }
5735   len = ((len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);   5735   len = ((len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);
5736   d = vgPlain_am_notify_client_mmap(a, len, prot, flags, fd, offset);   5736   d = vgPlain_am_notify_client_mmap(a, len, prot, flags, fd, offset);
5737   if (d) {   5737   if (d) {
5738     vgPlain_discard_translations((Addr64 )a, (ULong )len,   5738     vgPlain_discard_translations((Addr64 )a, (ULong )len,
5739                                  (HChar *)"notify_core_of_mmap");   5739                                  (HChar *)"notify_core_of_mmap");
5740   } else {   5740   } else {
5741     5741  
5742   }   5742   }
5743   return;   5743   return;
5744 }   5744 }
5745 }   5745 }
5746 static void notify_tool_of_mmap(Addr a , SizeT len , UInt prot ,   5746 static void notify_tool_of_mmap(Addr a , SizeT len , UInt prot ,
5747                                 ULong di_handle )   5747                                 ULong di_handle )
5748 {   5748 {
5749   Bool rr ;   5749   Bool rr ;
5750   Bool ww ;   5750   Bool ww ;
5751   Bool xx ;   5751   Bool xx ;
5752   long tmp ;   5752   long tmp ;
5753     5753  
5754   {   5754   {
5755   tmp = __builtin_expect((long )(! (! (0UL == (a & ((1UL << 12) - 1UL))))), 1L);   5755   tmp = __builtin_expect((long )(! (! (0UL == (a & ((1UL << 12) - 1UL))))), 1L);
5756   if (tmp) {   5756   if (tmp) {
5757     5757  
5758   } else {   5758   } else {
5759     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(a)",   5759     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(a)",
5760                         (Char const   *)"m_syswrap/syswrap-generic.c", 167,   5760                         (Char const   *)"m_syswrap/syswrap-generic.c", 167,
5761                         (Char const   *)"notify_tool_of_mmap", "");   5761                         (Char const   *)"notify_tool_of_mmap", "");
5762   }   5762   }
5763   len = ((len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);   5763   len = ((len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);
5764   rr = toBool((Int )(prot & 1U));   5764   rr = toBool((Int )(prot & 1U));
5765   ww = toBool((Int )(prot & 2U));   5765   ww = toBool((Int )(prot & 2U));
5766   xx = toBool((Int )(prot & 4U));   5766   xx = toBool((Int )(prot & 4U));
5767   while (1) {   5767   while (1) {
5768     if (vgPlain_tdict.track_new_mem_mmap) {   5768     if (vgPlain_tdict.track_new_mem_mmap) {
5769       (*(vgPlain_tdict.track_new_mem_mmap))(a, len, rr, ww, xx, di_handle);   5769       (*(vgPlain_tdict.track_new_mem_mmap))(a, len, rr, ww, xx, di_handle);
5770     } else {   5770     } else {
5771     5771  
5772     }   5772     }
5773     break;   5773     break;
5774   }   5774   }
5775   return;   5775   return;
5776 }   5776 }
5777 }   5777 }
5778 void vgModuleLocal_notify_core_and_tool_of_mmap(Addr a , SizeT len , UInt prot ,   5778 void vgModuleLocal_notify_core_and_tool_of_mmap(Addr a , SizeT len , UInt prot ,
5779                                                 UInt flags , Int fd ,   5779                                                 UInt flags , Int fd ,
5780                                                 Off64T offset )   5780                                                 Off64T offset )
5781 {   5781 {
5782     5782  
5783     5783  
5784   {   5784   {
5785   notify_core_of_mmap(a, len, prot, flags, fd, offset);   5785   notify_core_of_mmap(a, len, prot, flags, fd, offset);
5786   notify_tool_of_mmap(a, len, prot, (ULong )0);   5786   notify_tool_of_mmap(a, len, prot, (ULong )0);
5787   return;   5787   return;
5788 }   5788 }
5789 }   5789 }
5790 void vgModuleLocal_notify_core_and_tool_of_munmap(Addr a , SizeT len )   5790 void vgModuleLocal_notify_core_and_tool_of_munmap(Addr a , SizeT len )
5791 {   5791 {
5792   Bool d ;   5792   Bool d ;
5793     5793  
5794   {   5794   {
5795   page_align_addr_and_len(& a, & len);   5795   page_align_addr_and_len(& a, & len);
5796   d = vgPlain_am_notify_munmap(a, len);   5796   d = vgPlain_am_notify_munmap(a, len);
5797   while (1) {   5797   while (1) {
5798     if (vgPlain_tdict.track_die_mem_munmap) {   5798     if (vgPlain_tdict.track_die_mem_munmap) {
5799       (*(vgPlain_tdict.track_die_mem_munmap))(a, len);   5799       (*(vgPlain_tdict.track_die_mem_munmap))(a, len);
5800     } else {   5800     } else {
5801     5801  
5802     }   5802     }
5803     break;   5803     break;
5804   }   5804   }
5805   vgPlain_di_notify_munmap(a, len);   5805   vgPlain_di_notify_munmap(a, len);
5806   if (d) {   5806   if (d) {
5807     vgPlain_discard_translations((Addr64 )a, (ULong )len,   5807     vgPlain_discard_translations((Addr64 )a, (ULong )len,
5808                                  (HChar *)"ML_(notify_core_and_tool_of_munmap)");   5808                                  (HChar *)"ML_(notify_core_and_tool_of_munmap)");
5809   } else {   5809   } else {
5810     5810  
5811   }   5811   }
5812   return;   5812   return;
5813 }   5813 }
5814 }   5814 }
5815 void vgModuleLocal_notify_core_and_tool_of_mprotect(Addr a , SizeT len ,   5815 void vgModuleLocal_notify_core_and_tool_of_mprotect(Addr a , SizeT len ,
5816                                                     Int prot )   5816                                                     Int prot )
5817 {   5817 {
5818   Bool rr ;   5818   Bool rr ;
5819   Bool tmp ;   5819   Bool tmp ;
5820   Bool ww ;   5820   Bool ww ;
5821   Bool tmp___0 ;   5821   Bool tmp___0 ;
5822   Bool xx ;   5822   Bool xx ;
5823   Bool tmp___1 ;   5823   Bool tmp___1 ;
5824   Bool d ;   5824   Bool d ;
5825     5825  
5826   {   5826   {
5827   tmp = toBool(prot & 1);   5827   tmp = toBool(prot & 1);
5828   rr = tmp;   5828   rr = tmp;
5829   tmp___0 = toBool(prot & 2);   5829   tmp___0 = toBool(prot & 2);
5830   ww = tmp___0;   5830   ww = tmp___0;
5831   tmp___1 = toBool(prot & 4);   5831   tmp___1 = toBool(prot & 4);
5832   xx = tmp___1;   5832   xx = tmp___1;
5833   page_align_addr_and_len(& a, & len);   5833   page_align_addr_and_len(& a, & len);
5834   d = vgPlain_am_notify_mprotect(a, len, (UInt )prot);   5834   d = vgPlain_am_notify_mprotect(a, len, (UInt )prot);
5835   while (1) {   5835   while (1) {
5836     if (vgPlain_tdict.track_change_mem_mprotect) {   5836     if (vgPlain_tdict.track_change_mem_mprotect) {
5837       (*(vgPlain_tdict.track_change_mem_mprotect))(a, len, rr, ww, xx);   5837       (*(vgPlain_tdict.track_change_mem_mprotect))(a, len, rr, ww, xx);
5838     } else {   5838     } else {
5839     5839  
5840     }   5840     }
5841     break;   5841     break;
5842   }   5842   }
5843   vgPlain_di_notify_mprotect(a, len, (UInt )prot);   5843   vgPlain_di_notify_mprotect(a, len, (UInt )prot);
5844   if (d) {   5844   if (d) {
5845     vgPlain_discard_translations((Addr64 )a, (ULong )len,   5845     vgPlain_discard_translations((Addr64 )a, (ULong )len,
5846                                  (HChar *)"ML_(notify_core_and_tool_of_mprotect)");   5846                                  (HChar *)"ML_(notify_core_and_tool_of_mprotect)");
5847   } else {   5847   } else {
5848     5848  
5849   }   5849   }
5850   return;   5850   return;
5851 }   5851 }
5852 }   5852 }
5853 static SysRes do_mremap(Addr old_addr , SizeT old_len , Addr new_addr ,   5853 static SysRes do_mremap(Addr old_addr , SizeT old_len , Addr new_addr ,
5854                         SizeT new_len , UWord flags , ThreadId tid )   5854                         SizeT new_len , UWord flags , ThreadId tid )
5855 {   5855 {
5856   Bool ok ;   5856   Bool ok ;
5857   Bool d ;   5857   Bool d ;
5858   NSegment const   *old_seg ;   5858   NSegment const   *old_seg ;
5859   Addr advised ;   5859   Addr advised ;
5860   Bool f_fixed ;   5860   Bool f_fixed ;
5861   Bool tmp ;   5861   Bool tmp ;
5862   Bool f_maymove ;   5862   Bool f_maymove ;
5863   Bool tmp___0 ;   5863   Bool tmp___0 ;
5864   char const   *tmp___1 ;   5864   char const   *tmp___1 ;
5865   char const   *tmp___2 ;   5865   char const   *tmp___2 ;
5866   Bool tmp___3 ;   5866   Bool tmp___3 ;
5867   long tmp___4 ;   5867   long tmp___4 ;
5868   long tmp___5 ;   5868   long tmp___5 ;
5869   long tmp___6 ;   5869   long tmp___6 ;
5870   long tmp___7 ;   5870   long tmp___7 ;
5871   long tmp___8 ;   5871   long tmp___8 ;
5872   SizeT tmp___9 ;   5872   SizeT tmp___9 ;
5873   SysRes tmp___10 ;   5873   SysRes tmp___10 ;
5874   long tmp___11 ;   5874   long tmp___11 ;
5875   Addr needA ;   5875   Addr needA ;
5876   SSizeT needL ;   5876   SSizeT needL ;
5877   long tmp___12 ;   5877   long tmp___12 ;
5878   SysRes tmp___13 ;   5878   SysRes tmp___13 ;
5879   Bool oldR ;   5879   Bool oldR ;
5880   Bool oldW ;   5880   Bool oldW ;
5881   Bool oldX ;   5881   Bool oldX ;
5882   int tmp___14 ;   5882   int tmp___14 ;
5883   long tmp___15 ;   5883   long tmp___15 ;
5884   SizeT tmp___16 ;   5884   SizeT tmp___16 ;
5885   SysRes tmp___17 ;   5885   SysRes tmp___17 ;
5886   long tmp___18 ;   5886   long tmp___18 ;
5887   Addr needA___0 ;   5887   Addr needA___0 ;
5888   SizeT needL___0 ;   5888   SizeT needL___0 ;
5889   SysRes tmp___19 ;   5889   SysRes tmp___19 ;
5890   long tmp___20 ;   5890   long tmp___20 ;
5891   SysRes sres ;   5891   SysRes sres ;
5892   SysRes tmp___21 ;   5892   SysRes tmp___21 ;
5893   Bool tmp___22 ;   5893   Bool tmp___22 ;
5894   SysRes tmp___23 ;   5894   SysRes tmp___23 ;
5895   long tmp___24 ;   5895   long tmp___24 ;
5896   SysRes tmp___25 ;   5896   SysRes tmp___25 ;
5897   long tmp___26 ;   5897   long tmp___26 ;
5898   SysRes tmp___27 ;   5898   SysRes tmp___27 ;
5899   SysRes tmp___28 ;   5899   SysRes tmp___28 ;
5900     5900  
5901   {   5901   {
5902   tmp = toBool((Int )(flags & 2UL));   5902   tmp = toBool((Int )(flags & 2UL));
5903   f_fixed = tmp;   5903   f_fixed = tmp;
5904   tmp___0 = toBool((Int )(flags & 1UL));   5904   tmp___0 = toBool((Int )(flags & 1UL));
5905   f_maymove = tmp___0;   5905   f_maymove = tmp___0;
5906   if (flags & 4294967292UL) {   5906   if (flags & 4294967292UL) {
5907     goto eINVAL;   5907     goto eINVAL;
5908   } else {   5908   } else {
5909     5909  
5910   }   5910   }
5911   if (! (0UL == (old_addr & ((1UL << 12) - 1UL)))) {   5911   if (! (0UL == (old_addr & ((1UL << 12) - 1UL)))) {
5912     goto eINVAL;   5912     goto eINVAL;
5913   } else {   5913   } else {
5914     5914  
5915   }   5915   }
5916   old_len = ((old_len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);   5916   old_len = ((old_len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);
5917   new_len = ((new_len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);   5917   new_len = ((new_len + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);
5918   if (new_len == 0UL) {   5918   if (new_len == 0UL) {
5919     goto eINVAL;   5919     goto eINVAL;
5920   } else {   5920   } else {
5921     5921  
5922   }   5922   }
5923   if (old_len == 0UL) {   5923   if (old_len == 0UL) {
5924     goto eINVAL;   5924     goto eINVAL;
5925   } else {   5925   } else {
5926     5926  
5927   }   5927   }
5928   if (old_addr + old_len < old_addr) {   5928   if (old_addr + old_len < old_addr) {
5929     goto eINVAL;   5929     goto eINVAL;
5930   } else {   5930   } else {
5931     5931  
5932   }   5932   }
5933   if ((int )f_fixed == 1) {   5933   if ((int )f_fixed == 1) {
5934     if (new_addr + new_len < new_len) {   5934     if (new_addr + new_len < new_len) {
5935       goto eINVAL;   5935       goto eINVAL;
5936     } else {   5936     } else {
5937     5937  
5938     }   5938     }
5939   } else {   5939   } else {
5940     5940  
5941   }   5941   }
5942   if ((int )f_fixed == 1) {   5942   if ((int )f_fixed == 1) {
5943     if ((int )f_maymove == 0) {   5943     if ((int )f_maymove == 0) {
5944       goto eINVAL;   5944       goto eINVAL;
5945     } else {   5945     } else {
5946     5946  
5947     }   5947     }
5948   } else {   5948   } else {
5949     5949  
5950   }   5950   }
5951   tmp___3 = vgModuleLocal_valid_client_addr(old_addr, old_len, tid,   5951   tmp___3 = vgModuleLocal_valid_client_addr(old_addr, old_len, tid,
5952                                             (Char const   *)"mremap(old_addr)");   5952                                             (Char const   *)"mremap(old_addr)");
5953   if (tmp___3) {   5953   if (tmp___3) {
5954     5954  
5955   } else {   5955   } else {
5956     goto eINVAL;   5956     goto eINVAL;
5957   }   5957   }
5958   old_seg = vgPlain_am_find_nsegment(old_addr);   5958   old_seg = vgPlain_am_find_nsegment(old_addr);
5959   if (old_addr < (Addr )old_seg->start) {   5959   if (old_addr < (Addr )old_seg->start) {
5960     goto eINVAL;   5960     goto eINVAL;
5961   } else   5961   } else
5962   if ((old_addr + old_len) - 1UL > (Addr )old_seg->end) {   5962   if ((old_addr + old_len) - 1UL > (Addr )old_seg->end) {
5963     goto eINVAL;   5963     goto eINVAL;
5964   } else {   5964   } else {
5965     5965  
5966   }   5966   }
5967   if ((unsigned int const   )old_seg->kind != 1U) {   5967   if ((unsigned int const   )old_seg->kind != 1U) {
5968     if ((unsigned int const   )old_seg->kind != 3U) {   5968     if ((unsigned int const   )old_seg->kind != 3U) {
5969       goto eINVAL;   5969       goto eINVAL;
5970     } else {   5970     } else {
5971     5971  
5972     }   5972     }
5973   } else {   5973   } else {
5974     5974  
5975   }   5975   }
5976   tmp___4 = __builtin_expect((long )(! (! (old_len > 0UL))), 1L);   5976   tmp___4 = __builtin_expect((long )(! (! (old_len > 0UL))), 1L);
5977   if (tmp___4) {   5977   if (tmp___4) {
5978     5978  
5979   } else {   5979   } else {
5980     vgPlain_assert_fail((Bool )1, (Char const   *)"old_len > 0",   5980     vgPlain_assert_fail((Bool )1, (Char const   *)"old_len > 0",
5981                         (Char const   *)"m_syswrap/syswrap-generic.c", 303,   5981                         (Char const   *)"m_syswrap/syswrap-generic.c", 303,
5982                         (Char const   *)"do_mremap", "");   5982                         (Char const   *)"do_mremap", "");
5983   }   5983   }
5984   tmp___5 = __builtin_expect((long )(! (! (new_len > 0UL))), 1L);   5984   tmp___5 = __builtin_expect((long )(! (! (new_len > 0UL))), 1L);
5985   if (tmp___5) {   5985   if (tmp___5) {
5986     5986  
5987   } else {   5987   } else {
5988     vgPlain_assert_fail((Bool )1, (Char const   *)"new_len > 0",   5988     vgPlain_assert_fail((Bool )1, (Char const   *)"new_len > 0",
5989                         (Char const   *)"m_syswrap/syswrap-generic.c", 304,   5989                         (Char const   *)"m_syswrap/syswrap-generic.c", 304,
5990                         (Char const   *)"do_mremap", "");   5990                         (Char const   *)"do_mremap", "");
5991   }   5991   }
5992   tmp___6 = __builtin_expect((long )(! (! (0UL == (old_len & ((1UL << 12) - 1UL))))),   5992   tmp___6 = __builtin_expect((long )(! (! (0UL == (old_len & ((1UL << 12) - 1UL))))),
5993                              1L);   5993                              1L);
5994   if (tmp___6) {   5994   if (tmp___6) {
5995     5995  
5996   } else {   5996   } else {
5997     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(old_len)",   5997     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(old_len)",
5998                         (Char const   *)"m_syswrap/syswrap-generic.c", 305,   5998                         (Char const   *)"m_syswrap/syswrap-generic.c", 305,
5999                         (Char const   *)"do_mremap", "");   5999                         (Char const   *)"do_mremap", "");
6000   }   6000   }
6001   tmp___7 = __builtin_expect((long )(! (! (0UL == (new_len & ((1UL << 12) - 1UL))))),   6001   tmp___7 = __builtin_expect((long )(! (! (0UL == (new_len & ((1UL << 12) - 1UL))))),
6002                              1L);   6002                              1L);
6003   if (tmp___7) {   6003   if (tmp___7) {
6004     6004  
6005   } else {   6005   } else {
6006     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(new_len)",   6006     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(new_len)",
6007                         (Char const   *)"m_syswrap/syswrap-generic.c", 306,   6007                         (Char const   *)"m_syswrap/syswrap-generic.c", 306,
6008                         (Char const   *)"do_mremap", "");   6008                         (Char const   *)"do_mremap", "");
6009   }   6009   }
6010   tmp___8 = __builtin_expect((long )(! (! (0UL == (old_addr & ((1UL << 12) - 1UL))))),   6010   tmp___8 = __builtin_expect((long )(! (! (0UL == (old_addr & ((1UL << 12) - 1UL))))),
6011                              1L);   6011                              1L);
6012   if (tmp___8) {   6012   if (tmp___8) {
6013     6013  
6014   } else {   6014   } else {
6015     vgPlain_assert_fail((Bool )1,   6015     vgPlain_assert_fail((Bool )1,
6016                         (Char const   *)"VG_IS_PAGE_ALIGNED(old_addr)",   6016                         (Char const   *)"VG_IS_PAGE_ALIGNED(old_addr)",
6017                         (Char const   *)"m_syswrap/syswrap-generic.c", 307,   6017                         (Char const   *)"m_syswrap/syswrap-generic.c", 307,
6018                         (Char const   *)"do_mremap", "");   6018                         (Char const   *)"do_mremap", "");
6019   }   6019   }
6020   if ((int )f_maymove == 0) {   6020   if ((int )f_maymove == 0) {
6021     if (new_len < old_len) {   6021     if (new_len < old_len) {
6022       goto shrink_in_place;   6022       goto shrink_in_place;
6023     } else {   6023     } else {
6024     6024  
6025     }   6025     }
6026     if (new_len > old_len) {   6026     if (new_len > old_len) {
6027       goto grow_in_place_or_fail;   6027       goto grow_in_place_or_fail;
6028     } else {   6028     } else {
6029     6029  
6030     }   6030     }
6031     goto same_in_place;   6031     goto same_in_place;
6032   } else {   6032   } else {
6033     6033  
6034   }   6034   }
6035   if ((int )f_maymove == 1) {   6035   if ((int )f_maymove == 1) {
6036     if ((int )f_fixed == 0) {   6036     if ((int )f_fixed == 0) {
6037       if (new_len < old_len) {   6037       if (new_len < old_len) {
6038         goto shrink_in_place;   6038         goto shrink_in_place;
6039       } else {   6039       } else {
6040     6040  
6041       }   6041       }
6042       if (new_len > old_len) {   6042       if (new_len > old_len) {
6043         goto grow_in_place_or_move_anywhere_or_fail;   6043         goto grow_in_place_or_move_anywhere_or_fail;
6044       } else {   6044       } else {
6045     6045  
6046       }   6046       }
6047       goto same_in_place;   6047       goto same_in_place;
6048     } else {   6048     } else {
6049     6049  
6050     }   6050     }
6051   } else {   6051   } else {
6052     6052  
6053   }   6053   }
6054   if ((int )f_maymove == 1) {   6054   if ((int )f_maymove == 1) {
6055     if ((int )f_fixed == 1) {   6055     if ((int )f_fixed == 1) {
6056       if (! (0UL == (new_addr & ((1UL << 12) - 1UL)))) {   6056       if (! (0UL == (new_addr & ((1UL << 12) - 1UL)))) {
6057         goto eINVAL;   6057         goto eINVAL;
6058       } else {   6058       } else {
6059     6059  
6060       }   6060       }
6061       if ((new_addr + new_len) - 1UL < old_addr) {   6061       if ((new_addr + new_len) - 1UL < old_addr) {
6062     6062  
6063       } else   6063       } else
6064       if (new_addr > (old_addr + old_len) - 1UL) {   6064       if (new_addr > (old_addr + old_len) - 1UL) {
6065     6065  
6066       } else {   6066       } else {
6067         goto eINVAL;   6067         goto eINVAL;
6068       }   6068       }
6069       if (new_addr == 0UL) {   6069       if (new_addr == 0UL) {
6070         goto eINVAL;   6070         goto eINVAL;
6071       } else {   6071       } else {
6072     6072  
6073       }   6073       }
6074       advised = vgPlain_am_get_advisory_client_simple(new_addr, new_len, & ok);   6074       advised = vgPlain_am_get_advisory_client_simple(new_addr, new_len, & ok);
6075       if (! ok) {   6075       if (! ok) {
6076         goto eNOMEM;   6076         goto eNOMEM;
6077       } else   6077       } else
6078       if (advised != new_addr) {   6078       if (advised != new_addr) {
6079         goto eNOMEM;   6079         goto eNOMEM;
6080       } else {   6080       } else {
6081     6081  
6082       }   6082       }
6083       ok = vgPlain_am_relocate_nooverlap_client(& d, old_addr, old_len,   6083       ok = vgPlain_am_relocate_nooverlap_client(& d, old_addr, old_len,
6084                                                 new_addr, new_len);   6084                                                 new_addr, new_len);
6085       if (ok) {   6085       if (ok) {
6086         while (1) {   6086         while (1) {
6087           if (vgPlain_tdict.track_copy_mem_remap) {   6087           if (vgPlain_tdict.track_copy_mem_remap) {
6088             if (old_len < new_len) {   6088             if (old_len < new_len) {
6089               tmp___9 = old_len;   6089               tmp___9 = old_len;
6090             } else {   6090             } else {
6091               tmp___9 = new_len;   6091               tmp___9 = new_len;
6092             }   6092             }
6093             (*(vgPlain_tdict.track_copy_mem_remap))(old_addr, new_addr, tmp___9);   6093             (*(vgPlain_tdict.track_copy_mem_remap))(old_addr, new_addr, tmp___9);
6094           } else {   6094           } else {
6095     6095  
6096           }   6096           }
6097           break;   6097           break;
6098         }   6098         }
6099         if (new_len > old_len) {   6099         if (new_len > old_len) {
6100           while (1) {   6100           while (1) {
6101             if (vgPlain_tdict.track_new_mem_mmap) {   6101             if (vgPlain_tdict.track_new_mem_mmap) {
6102               (*(vgPlain_tdict.track_new_mem_mmap))(new_addr + old_len,   6102               (*(vgPlain_tdict.track_new_mem_mmap))(new_addr + old_len,
6103                                                     new_len - old_len,   6103                                                     new_len - old_len,
6104                                                     (Bool )old_seg->hasR,   6104                                                     (Bool )old_seg->hasR,
6105                                                     (Bool )old_seg->hasW,   6105                                                     (Bool )old_seg->hasW,
6106                                                     (Bool )old_seg->hasX,   6106                                                     (Bool )old_seg->hasX,
6107                                                     (ULong )0);   6107                                                     (ULong )0);
6108             } else {   6108             } else {
6109     6109  
6110             }   6110             }
6111             break;   6111             break;
6112           }   6112           }
6113         } else {   6113         } else {
6114     6114  
6115         }   6115         }
6116         while (1) {   6116         while (1) {
6117           if (vgPlain_tdict.track_die_mem_munmap) {   6117           if (vgPlain_tdict.track_die_mem_munmap) {
6118             (*(vgPlain_tdict.track_die_mem_munmap))(old_addr, old_len);   6118             (*(vgPlain_tdict.track_die_mem_munmap))(old_addr, old_len);
6119           } else {   6119           } else {
6120     6120  
6121           }   6121           }
6122           break;   6122           break;
6123         }   6123         }
6124         if (d) {   6124         if (d) {
6125           vgPlain_discard_translations((Addr64 )old_addr, (ULong )old_len,   6125           vgPlain_discard_translations((Addr64 )old_addr, (ULong )old_len,
6126                                        (HChar *)"do_remap(1)");   6126                                        (HChar *)"do_remap(1)");
6127           vgPlain_discard_translations((Addr64 )new_addr, (ULong )new_len,   6127           vgPlain_discard_translations((Addr64 )new_addr, (ULong )new_len,
6128                                        (HChar *)"do_remap(2)");   6128                                        (HChar *)"do_remap(2)");
6129         } else {   6129         } else {
6130     6130  
6131         }   6131         }
6132         tmp___10 = vgPlain_mk_SysRes_Success(new_addr);   6132         tmp___10 = vgPlain_mk_SysRes_Success(new_addr);
6133         return (tmp___10);   6133         return (tmp___10);
6134       } else {   6134       } else {
6135     6135  
6136       }   6136       }
6137       goto eNOMEM;   6137       goto eNOMEM;
6138     } else {   6138     } else {
6139     6139  
6140     }   6140     }
6141   } else {   6141   } else {
6142     6142  
6143   }   6143   }
6144   tmp___11 = __builtin_expect(0L, 1L);   6144   tmp___11 = __builtin_expect(0L, 1L);
6145   if (tmp___11) {   6145   if (tmp___11) {
6146     6146  
6147   } else {   6147   } else {
6148     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6148     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6149                         (Char const   *)"m_syswrap/syswrap-generic.c", 391,   6149                         (Char const   *)"m_syswrap/syswrap-generic.c", 391,
6150                         (Char const   *)"do_mremap", "");   6150                         (Char const   *)"do_mremap", "");
6151   }   6151   }
6152   grow_in_place_or_move_anywhere_or_fail:   6152   grow_in_place_or_move_anywhere_or_fail:
6153   needA = old_addr + old_len;   6153   needA = old_addr + old_len;
6154   needL = (SSizeT )(new_len - old_len);   6154   needL = (SSizeT )(new_len - old_len);
6155   tmp___12 = __builtin_expect((long )(! (! (needL > 0L))), 1L);   6155   tmp___12 = __builtin_expect((long )(! (! (needL > 0L))), 1L);
6156   if (tmp___12) {   6156   if (tmp___12) {
6157     6157  
6158   } else {   6158   } else {
6159     vgPlain_assert_fail((Bool )1, (Char const   *)"needL > 0",   6159     vgPlain_assert_fail((Bool )1, (Char const   *)"needL > 0",
6160                         (Char const   *)"m_syswrap/syswrap-generic.c", 399,   6160                         (Char const   *)"m_syswrap/syswrap-generic.c", 399,
6161                         (Char const   *)"do_mremap", "");   6161                         (Char const   *)"do_mremap", "");
6162   }   6162   }
6163   if (needA == 0UL) {   6163   if (needA == 0UL) {
6164     goto eINVAL;   6164     goto eINVAL;
6165   } else {   6165   } else {
6166     6166  
6167   }   6167   }
6168   advised = vgPlain_am_get_advisory_client_simple(needA, (SizeT )needL, & ok);   6168   advised = vgPlain_am_get_advisory_client_simple(needA, (SizeT )needL, & ok);
6169   if (ok) {   6169   if (ok) {
6170     ok = vgPlain_am_covered_by_single_free_segment(needA, (SizeT )needL);   6170     ok = vgPlain_am_covered_by_single_free_segment(needA, (SizeT )needL);
6171   } else {   6171   } else {
6172     6172  
6173   }   6173   }
6174   if (ok) {   6174   if (ok) {
6175     if (advised == needA) {   6175     if (advised == needA) {
6176       ok = vgPlain_am_extend_map_client(& d, (NSegment *)old_seg, (SizeT )needL);   6176       ok = vgPlain_am_extend_map_client(& d, (NSegment *)old_seg, (SizeT )needL);
6177       if (ok) {   6177       if (ok) {
6178         while (1) {   6178         while (1) {
6179           if (vgPlain_tdict.track_new_mem_mmap) {   6179           if (vgPlain_tdict.track_new_mem_mmap) {
6180             (*(vgPlain_tdict.track_new_mem_mmap))(needA, (SizeT )needL,   6180             (*(vgPlain_tdict.track_new_mem_mmap))(needA, (SizeT )needL,
6181                                                   (Bool )old_seg->hasR,   6181                                                   (Bool )old_seg->hasR,
6182                                                   (Bool )old_seg->hasW,   6182                                                   (Bool )old_seg->hasW,
6183                                                   (Bool )old_seg->hasX,   6183                                                   (Bool )old_seg->hasX,
6184                                                   (ULong )0);   6184                                                   (ULong )0);
6185           } else {   6185           } else {
6186     6186  
6187           }   6187           }
6188           break;   6188           break;
6189         }   6189         }
6190         if (d) {   6190         if (d) {
6191           vgPlain_discard_translations((Addr64 )needA, (ULong )needL,   6191           vgPlain_discard_translations((Addr64 )needA, (ULong )needL,
6192                                        (HChar *)"do_remap(3)");   6192                                        (HChar *)"do_remap(3)");
6193         } else {   6193         } else {
6194     6194  
6195         }   6195         }
6196         tmp___13 = vgPlain_mk_SysRes_Success(old_addr);   6196         tmp___13 = vgPlain_mk_SysRes_Success(old_addr);
6197         return (tmp___13);   6197         return (tmp___13);
6198       } else {   6198       } else {
6199     6199  
6200       }   6200       }
6201     } else {   6201     } else {
6202     6202  
6203     }   6203     }
6204   } else {   6204   } else {
6205     6205  
6206   }   6206   }
6207   advised = vgPlain_am_get_advisory_client_simple((Addr )0, new_len, & ok);   6207   advised = vgPlain_am_get_advisory_client_simple((Addr )0, new_len, & ok);
6208   if (ok) {   6208   if (ok) {
6209     oldR = (Bool )old_seg->hasR;   6209     oldR = (Bool )old_seg->hasR;
6210     oldW = (Bool )old_seg->hasW;   6210     oldW = (Bool )old_seg->hasW;
6211     oldX = (Bool )old_seg->hasX;   6211     oldX = (Bool )old_seg->hasX;
6212     if ((advised + new_len) - 1UL < old_addr) {   6212     if ((advised + new_len) - 1UL < old_addr) {
6213       tmp___14 = 1;   6213       tmp___14 = 1;
6214     } else   6214     } else
6215     if (advised > (old_addr + old_len) - 1UL) {   6215     if (advised > (old_addr + old_len) - 1UL) {
6216       tmp___14 = 1;   6216       tmp___14 = 1;
6217     } else {   6217     } else {
6218       tmp___14 = 0;   6218       tmp___14 = 0;
6219     }   6219     }
6220     tmp___15 = __builtin_expect((long )tmp___14, 1L);   6220     tmp___15 = __builtin_expect((long )tmp___14, 1L);
6221     if (tmp___15) {   6221     if (tmp___15) {
6222     6222  
6223     } else {   6223     } else {
6224       vgPlain_assert_fail((Bool )1,   6224       vgPlain_assert_fail((Bool )1,
6225                           (Char const   *)"advised+new_len-1 < old_addr || advised > old_addr+old_len-1",   6225                           (Char const   *)"advised+new_len-1 < old_addr || advised > old_addr+old_len-1",
6226                           (Char const   *)"m_syswrap/syswrap-generic.c", 430,   6226                           (Char const   *)"m_syswrap/syswrap-generic.c", 430,
6227                           (Char const   *)"do_mremap", "");   6227                           (Char const   *)"do_mremap", "");
6228     }   6228     }
6229     ok = vgPlain_am_relocate_nooverlap_client(& d, old_addr, old_len, advised,   6229     ok = vgPlain_am_relocate_nooverlap_client(& d, old_addr, old_len, advised,
6230                                               new_len);   6230                                               new_len);
6231     if (ok) {   6231     if (ok) {
6232       while (1) {   6232       while (1) {
6233         if (vgPlain_tdict.track_copy_mem_remap) {   6233         if (vgPlain_tdict.track_copy_mem_remap) {
6234           if (old_len < new_len) {   6234           if (old_len < new_len) {
6235             tmp___16 = old_len;   6235             tmp___16 = old_len;
6236           } else {   6236           } else {
6237             tmp___16 = new_len;   6237             tmp___16 = new_len;
6238           }   6238           }
6239           (*(vgPlain_tdict.track_copy_mem_remap))(old_addr, advised, tmp___16);   6239           (*(vgPlain_tdict.track_copy_mem_remap))(old_addr, advised, tmp___16);
6240         } else {   6240         } else {
6241     6241  
6242         }   6242         }
6243         break;   6243         break;
6244       }   6244       }
6245       if (new_len > old_len) {   6245       if (new_len > old_len) {
6246         while (1) {   6246         while (1) {
6247           if (vgPlain_tdict.track_new_mem_mmap) {   6247           if (vgPlain_tdict.track_new_mem_mmap) {
6248             (*(vgPlain_tdict.track_new_mem_mmap))(advised + old_len,   6248             (*(vgPlain_tdict.track_new_mem_mmap))(advised + old_len,
6249                                                   new_len - old_len, oldR, oldW,   6249                                                   new_len - old_len, oldR, oldW,
6250                                                   oldX, (ULong )0);   6250                                                   oldX, (ULong )0);
6251           } else {   6251           } else {
6252     6252  
6253           }   6253           }
6254           break;   6254           break;
6255         }   6255         }
6256       } else {   6256       } else {
6257     6257  
6258       }   6258       }
6259       while (1) {   6259       while (1) {
6260         if (vgPlain_tdict.track_die_mem_munmap) {   6260         if (vgPlain_tdict.track_die_mem_munmap) {
6261           (*(vgPlain_tdict.track_die_mem_munmap))(old_addr, old_len);   6261           (*(vgPlain_tdict.track_die_mem_munmap))(old_addr, old_len);
6262         } else {   6262         } else {
6263     6263  
6264         }   6264         }
6265         break;   6265         break;
6266       }   6266       }
6267       if (d) {   6267       if (d) {
6268         vgPlain_discard_translations((Addr64 )old_addr, (ULong )old_len,   6268         vgPlain_discard_translations((Addr64 )old_addr, (ULong )old_len,
6269                                      (HChar *)"do_remap(4)");   6269                                      (HChar *)"do_remap(4)");
6270         vgPlain_discard_translations((Addr64 )advised, (ULong )new_len,   6270         vgPlain_discard_translations((Addr64 )advised, (ULong )new_len,
6271                                      (HChar *)"do_remap(5)");   6271                                      (HChar *)"do_remap(5)");
6272       } else {   6272       } else {
6273     6273  
6274       }   6274       }
6275       tmp___17 = vgPlain_mk_SysRes_Success(advised);   6275       tmp___17 = vgPlain_mk_SysRes_Success(advised);
6276       return (tmp___17);   6276       return (tmp___17);
6277     } else {   6277     } else {
6278     6278  
6279     }   6279     }
6280   } else {   6280   } else {
6281     6281  
6282   }   6282   }
6283   goto eNOMEM;   6283   goto eNOMEM;
6284   tmp___18 = __builtin_expect(0L, 1L);   6284   tmp___18 = __builtin_expect(0L, 1L);
6285   if (tmp___18) {   6285   if (tmp___18) {
6286     6286  
6287   } else {   6287   } else {
6288     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6288     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6289                         (Char const   *)"m_syswrap/syswrap-generic.c", 449,   6289                         (Char const   *)"m_syswrap/syswrap-generic.c", 449,
6290                         (Char const   *)"do_mremap", "");   6290                         (Char const   *)"do_mremap", "");
6291   }   6291   }
6292   grow_in_place_or_fail:   6292   grow_in_place_or_fail:
6293   needA___0 = old_addr + old_len;   6293   needA___0 = old_addr + old_len;
6294   needL___0 = new_len - old_len;   6294   needL___0 = new_len - old_len;
6295   if (needA___0 == 0UL) {   6295   if (needA___0 == 0UL) {
6296     goto eINVAL;   6296     goto eINVAL;
6297   } else {   6297   } else {
6298     6298  
6299   }   6299   }
6300   advised = vgPlain_am_get_advisory_client_simple(needA___0, needL___0, & ok);   6300   advised = vgPlain_am_get_advisory_client_simple(needA___0, needL___0, & ok);
6301   if (ok) {   6301   if (ok) {
6302     ok = vgPlain_am_covered_by_single_free_segment(needA___0, needL___0);   6302     ok = vgPlain_am_covered_by_single_free_segment(needA___0, needL___0);
6303   } else {   6303   } else {
6304     6304  
6305   }   6305   }
6306   if (! ok) {   6306   if (! ok) {
6307     goto eNOMEM;   6307     goto eNOMEM;
6308   } else   6308   } else
6309   if (advised != needA___0) {   6309   if (advised != needA___0) {
6310     goto eNOMEM;   6310     goto eNOMEM;
6311   } else {   6311   } else {
6312     6312  
6313   }   6313   }
6314   ok = vgPlain_am_extend_map_client(& d, (NSegment *)old_seg, needL___0);   6314   ok = vgPlain_am_extend_map_client(& d, (NSegment *)old_seg, needL___0);
6315   if (! ok) {   6315   if (! ok) {
6316     goto eNOMEM;   6316     goto eNOMEM;
6317   } else {   6317   } else {
6318     6318  
6319   }   6319   }
6320   while (1) {   6320   while (1) {
6321     if (vgPlain_tdict.track_new_mem_mmap) {   6321     if (vgPlain_tdict.track_new_mem_mmap) {
6322       (*(vgPlain_tdict.track_new_mem_mmap))(needA___0, needL___0,   6322       (*(vgPlain_tdict.track_new_mem_mmap))(needA___0, needL___0,
6323                                             (Bool )old_seg->hasR,   6323                                             (Bool )old_seg->hasR,
6324                                             (Bool )old_seg->hasW,   6324                                             (Bool )old_seg->hasW,
6325                                             (Bool )old_seg->hasX, (ULong )0);   6325                                             (Bool )old_seg->hasX, (ULong )0);
6326     } else {   6326     } else {
6327     6327  
6328     }   6328     }
6329     break;   6329     break;
6330   }   6330   }
6331   if (d) {   6331   if (d) {
6332     vgPlain_discard_translations((Addr64 )needA___0, (ULong )needL___0,   6332     vgPlain_discard_translations((Addr64 )needA___0, (ULong )needL___0,
6333                                  (HChar *)"do_remap(6)");   6333                                  (HChar *)"do_remap(6)");
6334   } else {   6334   } else {
6335     6335  
6336   }   6336   }
6337   tmp___19 = vgPlain_mk_SysRes_Success(old_addr);   6337   tmp___19 = vgPlain_mk_SysRes_Success(old_addr);
6338   return (tmp___19);   6338   return (tmp___19);
6339   tmp___20 = __builtin_expect(0L, 1L);   6339   tmp___20 = __builtin_expect(0L, 1L);
6340   if (tmp___20) {   6340   if (tmp___20) {
6341     6341  
6342   } else {   6342   } else {
6343     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6343     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6344                         (Char const   *)"m_syswrap/syswrap-generic.c", 476,   6344                         (Char const   *)"m_syswrap/syswrap-generic.c", 476,
6345                         (Char const   *)"do_mremap", "");   6345                         (Char const   *)"do_mremap", "");
6346   }   6346   }
6347   shrink_in_place:   6347   shrink_in_place:
6348   tmp___21 = vgPlain_am_munmap_client(& d, old_addr + new_len, old_len - new_len);   6348   tmp___21 = vgPlain_am_munmap_client(& d, old_addr + new_len, old_len - new_len);
6349   sres = tmp___21;   6349   sres = tmp___21;
6350   tmp___22 = sr_isError(sres);   6350   tmp___22 = sr_isError(sres);
6351   if (tmp___22) {   6351   if (tmp___22) {
6352     return (sres);   6352     return (sres);
6353   } else {   6353   } else {
6354     6354  
6355   }   6355   }
6356   while (1) {   6356   while (1) {
6357     if (vgPlain_tdict.track_die_mem_munmap) {   6357     if (vgPlain_tdict.track_die_mem_munmap) {
6358       (*(vgPlain_tdict.track_die_mem_munmap))(old_addr + new_len,   6358       (*(vgPlain_tdict.track_die_mem_munmap))(old_addr + new_len,
6359                                               old_len - new_len);   6359                                               old_len - new_len);
6360     } else {   6360     } else {
6361     6361  
6362     }   6362     }
6363     break;   6363     break;
6364   }   6364   }
6365   if (d) {   6365   if (d) {
6366     vgPlain_discard_translations((Addr64 )(old_addr + new_len),   6366     vgPlain_discard_translations((Addr64 )(old_addr + new_len),
6367                                  (ULong )(old_len - new_len),   6367                                  (ULong )(old_len - new_len),
6368                                  (HChar *)"do_remap(7)");   6368                                  (HChar *)"do_remap(7)");
6369   } else {   6369   } else {
6370     6370  
6371   }   6371   }
6372   tmp___23 = vgPlain_mk_SysRes_Success(old_addr);   6372   tmp___23 = vgPlain_mk_SysRes_Success(old_addr);
6373   return (tmp___23);   6373   return (tmp___23);
6374   tmp___24 = __builtin_expect(0L, 1L);   6374   tmp___24 = __builtin_expect(0L, 1L);
6375   if (tmp___24) {   6375   if (tmp___24) {
6376     6376  
6377   } else {   6377   } else {
6378     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6378     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6379                         (Char const   *)"m_syswrap/syswrap-generic.c", 489,   6379                         (Char const   *)"m_syswrap/syswrap-generic.c", 489,
6380                         (Char const   *)"do_mremap", "");   6380                         (Char const   *)"do_mremap", "");
6381   }   6381   }
6382   same_in_place:   6382   same_in_place:
6383   tmp___25 = vgPlain_mk_SysRes_Success(old_addr);   6383   tmp___25 = vgPlain_mk_SysRes_Success(old_addr);
6384   return (tmp___25);   6384   return (tmp___25);
6385   tmp___26 = __builtin_expect(0L, 1L);   6385   tmp___26 = __builtin_expect(0L, 1L);
6386   if (tmp___26) {   6386   if (tmp___26) {
6387     6387  
6388   } else {   6388   } else {
6389     vgPlain_assert_fail((Bool )1, (Char const   *)"0",   6389     vgPlain_assert_fail((Bool )1, (Char const   *)"0",
6390                         (Char const   *)"m_syswrap/syswrap-generic.c", 493,   6390                         (Char const   *)"m_syswrap/syswrap-generic.c", 493,
6391                         (Char const   *)"do_mremap", "");   6391                         (Char const   *)"do_mremap", "");
6392   }   6392   }
6393   eINVAL:   6393   eINVAL:
6394   tmp___27 = vgPlain_mk_SysRes_Error((UWord )22);   6394   tmp___27 = vgPlain_mk_SysRes_Error((UWord )22);
6395   return (tmp___27);   6395   return (tmp___27);
6396   eNOMEM:   6396   eNOMEM:
6397   tmp___28 = vgPlain_mk_SysRes_Error((UWord )12);   6397   tmp___28 = vgPlain_mk_SysRes_Error((UWord )12);
6398   return (tmp___28);   6398   return (tmp___28);
6399 }   6399 }
6400 }   6400 }
6401 static OpenFd *allocated_fds  =    (OpenFd *)((void *)0);   6401 static OpenFd *allocated_fds  =    (OpenFd *)((void *)0);
6402 static Int fd_count  =    0;   6402 static Int fd_count  =    0;
6403 static void record_fd_close(Int fd )   6403 static void record_fd_close(Int fd )
6404 {   6404 {
6405   OpenFd *i ;   6405   OpenFd *i ;
6406     6406  
6407   {   6407   {
6408   i = allocated_fds;   6408   i = allocated_fds;
6409   if (fd >= vgPlain_fd_hard_limit) {   6409   if (fd >= vgPlain_fd_hard_limit) {
6410     return;   6410     return;
6411   } else {   6411   } else {
6412     6412  
6413   }   6413   }
6414   while (i) {   6414   while (i) {
6415     if (i->fd == fd) {   6415     if (i->fd == fd) {
6416       if (i->prev) {   6416       if (i->prev) {
6417         (i->prev)->next = i->next;   6417         (i->prev)->next = i->next;
6418       } else {   6418       } else {
6419         allocated_fds = i->next;   6419         allocated_fds = i->next;
6420       }   6420       }
6421       if (i->next) {   6421       if (i->next) {
6422         (i->next)->prev = i->prev;   6422         (i->next)->prev = i->prev;
6423       } else {   6423       } else {
6424     6424  
6425       }   6425       }
6426       if (i->pathname) {   6426       if (i->pathname) {
6427         vgPlain_arena_free(0, (void *)i->pathname);   6427         vgPlain_arena_free(0, (void *)i->pathname);
6428       } else {   6428       } else {
6429     6429  
6430       }   6430       }
6431       vgPlain_arena_free(0, (void *)i);   6431       vgPlain_arena_free(0, (void *)i);
6432       fd_count --;   6432       fd_count --;
6433       break;   6433       break;
6434     } else {   6434     } else {
6435     6435  
6436     }   6436     }
6437     i = i->next;   6437     i = i->next;
6438   }   6438   }
6439   return;   6439   return;
6440 }   6440 }
6441 }   6441 }
6442 void vgModuleLocal_record_fd_open_with_given_name(ThreadId tid , Int fd ,   6442 void vgModuleLocal_record_fd_open_with_given_name(ThreadId tid , Int fd ,
6443                                                   char *pathname )   6443                                                   char *pathname )
6444 {   6444 {
6445   OpenFd *i ;   6445   OpenFd *i ;
6446   void *tmp ;   6446   void *tmp ;
6447   ExeContext *tmp___0 ;   6447   ExeContext *tmp___0 ;
6448     6448  
6449   {   6449   {
6450   if (fd >= vgPlain_fd_hard_limit) {   6450   if (fd >= vgPlain_fd_hard_limit) {
6451     return;   6451     return;
6452   } else {   6452   } else {
6453     6453  
6454   }   6454   }
6455   i = allocated_fds;   6455   i = allocated_fds;
6456   while (i) {   6456   while (i) {
6457     if (i->fd == fd) {   6457     if (i->fd == fd) {
6458       if (i->pathname) {   6458       if (i->pathname) {
6459         vgPlain_arena_free(0, (void *)i->pathname);   6459         vgPlain_arena_free(0, (void *)i->pathname);
6460       } else {   6460       } else {
6461     6461  
6462       }   6462       }
6463       break;   6463       break;
6464     } else {   6464     } else {
6465     6465  
6466     }   6466     }
6467     i = i->next;   6467     i = i->next;
6468   }   6468   }
6469   if ((unsigned int )i == (unsigned int )((void *)0)) {   6469   if ((unsigned int )i == (unsigned int )((void *)0)) {
6470     tmp = vgPlain_arena_malloc(0, (HChar *)"syswrap.rfdowgn.1",   6470     tmp = vgPlain_arena_malloc(0, (HChar *)"syswrap.rfdowgn.1",
6471                                (SizeT )sizeof(OpenFd ));   6471                                (SizeT )sizeof(OpenFd ));
6472     i = (OpenFd *)tmp;   6472     i = (OpenFd *)tmp;
6473     i->prev = (struct OpenFd *)((void *)0);   6473     i->prev = (struct OpenFd *)((void *)0);
6474     i->next = allocated_fds;   6474     i->next = allocated_fds;
6475     if (allocated_fds) {   6475     if (allocated_fds) {
6476       allocated_fds->prev = i;   6476       allocated_fds->prev = i;
6477     } else {   6477     } else {
6478     6478  
6479     }   6479     }
6480     allocated_fds = i;   6480     allocated_fds = i;
6481     fd_count ++;   6481     fd_count ++;
6482   } else {   6482   } else {
6483     6483  
6484   }   6484   }
6485   i->fd = fd;   6485   i->fd = fd;
6486   i->pathname = vgPlain_arena_strdup(0, (HChar *)"syswrap.rfdowgn.2",   6486   i->pathname = vgPlain_arena_strdup(0, (HChar *)"syswrap.rfdowgn.2",
6487                                      (Char const   *)pathname);   6487                                      (Char const   *)pathname);
6488   if (tid == 4294967295U) {   6488   if (tid == 4294967295U) {
6489     i->where = (ExeContext *)((void *)0);   6489     i->where = (ExeContext *)((void *)0);
6490   } else {   6490   } else {
6491     tmp___0 = vgPlain_record_ExeContext(tid, (Word )0);   6491     tmp___0 = vgPlain_record_ExeContext(tid, (Word )0);
6492     i->where = tmp___0;   6492     i->where = tmp___0;
6493   }   6493   }
6494   return;   6494   return;
6495 }   6495 }
6496 }   6496 }
6497 static HChar buf[4096]  ;   6497 static HChar buf[4096]  ;
6498 void vgModuleLocal_record_fd_open_named(ThreadId tid , Int fd )   6498 void vgModuleLocal_record_fd_open_named(ThreadId tid , Int fd )
6499 {   6499 {
6500   Char *name ;   6500   Char *name ;
6501   Bool tmp ;   6501   Bool tmp ;
6502     6502  
6503   {   6503   {
6504   tmp = vgPlain_resolve_filename(fd, buf, 4096);   6504   tmp = vgPlain_resolve_filename(fd, buf, 4096);
6505   if (tmp) {   6505   if (tmp) {
6506     name = (Char *)(buf);   6506     name = (Char *)(buf);
6507   } else {   6507   } else {
6508     name = (Char *)((void *)0);   6508     name = (Char *)((void *)0);
6509   }   6509   }
6510   vgModuleLocal_record_fd_open_with_given_name(tid, fd, (char *)name);   6510   vgModuleLocal_record_fd_open_with_given_name(tid, fd, (char *)name);
6511   return;   6511   return;
6512 }   6512 }
6513 }   6513 }
6514 void vgModuleLocal_record_fd_open_nameless(ThreadId tid , Int fd )   6514 void vgModuleLocal_record_fd_open_nameless(ThreadId tid , Int fd )
6515 {   6515 {
6516     6516  
6517     6517  
6518   {   6518   {
6519   vgModuleLocal_record_fd_open_with_given_name(tid, fd, (char *)((void *)0));   6519   vgModuleLocal_record_fd_open_with_given_name(tid, fd, (char *)((void *)0));
6520   return;   6520   return;
6521 }   6521 }
6522 }   6522 }
6523 static Char *unix2name(struct vki_sockaddr_un *sa , UInt len , Char *name )   6523 static Char *unix2name(struct vki_sockaddr_un *sa , UInt len , Char *name )
6524 {   6524 {
6525     6525  
6526     6526  
6527   {   6527   {
6528   if ((unsigned int )sa == (unsigned int )((void *)0)) {   6528   if ((unsigned int )sa == (unsigned int )((void *)0)) {
6529     vgPlain_sprintf(name, "<unknown>");   6529     vgPlain_sprintf(name, "<unknown>");
6530   } else   6530   } else
6531   if (len == 0U) {   6531   if (len == 0U) {
6532     vgPlain_sprintf(name, "<unknown>");   6532     vgPlain_sprintf(name, "<unknown>");
6533   } else   6533   } else
6534   if ((int )sa->sun_path[0] == 0) {   6534   if ((int )sa->sun_path[0] == 0) {
6535     vgPlain_sprintf(name, "<unknown>");   6535     vgPlain_sprintf(name, "<unknown>");
6536   } else {   6536   } else {
6537     vgPlain_sprintf(name, "%s", sa->sun_path);   6537     vgPlain_sprintf(name, "%s", sa->sun_path);
6538   }   6538   }
6539   return (name);   6539   return (name);
6540 }   6540 }
6541 }   6541 }
6542 static Char *inet2name(struct vki_sockaddr_in *sa , UInt len , Char *name )   6542 static Char *inet2name(struct vki_sockaddr_in *sa , UInt len , Char *name )
6543 {   6543 {
6544   UInt addr ;   6544   UInt addr ;
6545   UInt tmp ;   6545   UInt tmp ;
6546   UShort tmp___0 ;   6546   UShort tmp___0 ;
6547     6547  
6548   {   6548   {
6549   if ((unsigned int )sa == (unsigned int )((void *)0)) {   6549   if ((unsigned int )sa == (unsigned int )((void *)0)) {
6550     vgPlain_sprintf(name, "<unknown>");   6550     vgPlain_sprintf(name, "<unknown>");
6551   } else   6551   } else
6552   if (len == 0U) {   6552   if (len == 0U) {
6553     vgPlain_sprintf(name, "<unknown>");   6553     vgPlain_sprintf(name, "<unknown>");
6554   } else {   6554   } else {
6555     tmp = vgPlain_ntohl(sa->sin_addr.s_addr);   6555     tmp = vgPlain_ntohl(sa->sin_addr.s_addr);
6556     addr = tmp;   6556     addr = tmp;
6557     if (addr == 0U) {   6557     if (addr == 0U) {
6558       vgPlain_sprintf(name, "<unbound>");   6558       vgPlain_sprintf(name, "<unbound>");
6559     } else {   6559     } else {
6560       tmp___0 = vgPlain_ntohs(sa->sin_port);   6560       tmp___0 = vgPlain_ntohs(sa->sin_port);
6561       vgPlain_sprintf(name, "%u.%u.%u.%u:%u", (addr >> 24) & 255U,   6561       vgPlain_sprintf(name, "%u.%u.%u.%u:%u", (addr >> 24) & 255U,
6562                       (addr >> 16) & 255U, (addr >> 8) & 255U, addr & 255U,   6562                       (addr >> 16) & 255U, (addr >> 8) & 255U, addr & 255U,
6563                       (int )tmp___0);   6563                       (int )tmp___0);
6564     }   6564     }
6565   }   6565   }
6566   return (name);   6566   return (name);
6567 }   6567 }
6568 }   6568 }
6569 static char lname[32]  ;   6569 static char lname[32]  ;
6570 static char pname[32]  ;   6570 static char pname[32]  ;
6571 static char lname___0[256]  ;   6571 static char lname___0[256]  ;
6572 static void getsockdetails(Int fd )   6572 static void getsockdetails(Int fd )
6573 {   6573 {
6574   union u laddr ;   6574   union u laddr ;
6575   UInt llen ;   6575   UInt llen ;
6576   struct vki_sockaddr_in paddr ;   6576   struct vki_sockaddr_in paddr ;
6577   UInt plen ;   6577   UInt plen ;
6578   Char *tmp ;   6578   Char *tmp ;
6579   Char *tmp___0 ;   6579   Char *tmp___0 ;
6580   Char *tmp___1 ;   6580   Char *tmp___1 ;
6581   Int tmp___2 ;   6581   Int tmp___2 ;
6582   Char *tmp___3 ;   6582   Char *tmp___3 ;
6583   Int tmp___4 ;   6583   Int tmp___4 ;
6584     6584  
6585   {   6585   {
6586   llen = sizeof(laddr);   6586   llen = sizeof(laddr);
6587   vgPlain_memset((void *)(& laddr), 0, (SizeT )llen);   6587   vgPlain_memset((void *)(& laddr), 0, (SizeT )llen);
6588   tmp___4 = vgPlain_getsockname(fd, & laddr.a, (Int *)(& llen));   6588   tmp___4 = vgPlain_getsockname(fd, & laddr.a, (Int *)(& llen));
6589   if (tmp___4 != -1) {   6589   if (tmp___4 != -1) {
6590     switch ((int )laddr.a.sa_family) {   6590     switch ((int )laddr.a.sa_family) {
6591     case 2:   6591     case 2:
6592     plen = sizeof(struct vki_sockaddr_in );   6592     plen = sizeof(struct vki_sockaddr_in );
6593     tmp___2 = vgPlain_getpeername(fd, (struct vki_sockaddr *)(& paddr),   6593     tmp___2 = vgPlain_getpeername(fd, (struct vki_sockaddr *)(& paddr),
6594                                   (Int *)(& plen));   6594                                   (Int *)(& plen));
6595     if (tmp___2 != -1) {   6595     if (tmp___2 != -1) {
6596       tmp = inet2name(& paddr, plen, (Char *)(pname));   6596       tmp = inet2name(& paddr, plen, (Char *)(pname));
6597       tmp___0 = inet2name(& laddr.in, llen, (Char *)(lname));   6597       tmp___0 = inet2name(& laddr.in, llen, (Char *)(lname));
6598       vgPlain_message((VgMsgKind )1, "Open AF_INET socket %d: %s <-> %s\n", fd,   6598       vgPlain_message((VgMsgKind )1, "Open AF_INET socket %d: %s <-> %s\n", fd,
6599                       tmp___0, tmp);   6599                       tmp___0, tmp);
6600     } else {   6600     } else {
6601       tmp___1 = inet2name(& laddr.in, llen, (Char *)(lname));   6601       tmp___1 = inet2name(& laddr.in, llen, (Char *)(lname));
6602       vgPlain_message((VgMsgKind )1, "Open AF_INET socket %d: %s <-> unbound\n",   6602       vgPlain_message((VgMsgKind )1, "Open AF_INET socket %d: %s <-> unbound\n",
6603                       fd, tmp___1);   6603                       fd, tmp___1);
6604     }   6604     }
6605     return;   6605     return;
6606     case 1:   6606     case 1:
6607     tmp___3 = unix2name(& laddr.un, llen, (Char *)(lname___0));   6607     tmp___3 = unix2name(& laddr.un, llen, (Char *)(lname___0));
6608     vgPlain_message((VgMsgKind )1, "Open AF_UNIX socket %d: %s\n", fd, tmp___3);   6608     vgPlain_message((VgMsgKind )1, "Open AF_UNIX socket %d: %s\n", fd, tmp___3);
6609     return;   6609     return;
6610     default:   6610     default:
6611     vgPlain_message((VgMsgKind )1, "Open pf-%d socket %d:\n",   6611     vgPlain_message((VgMsgKind )1, "Open pf-%d socket %d:\n",
6612                     (int )laddr.a.sa_family, fd);   6612                     (int )laddr.a.sa_family, fd);
6613     return;   6613     return;
6614     }   6614     }
6615   } else {   6615   } else {
6616     6616  
6617   }   6617   }
6618   vgPlain_message((VgMsgKind )1, "Open socket %d:\n", fd);   6618   vgPlain_message((VgMsgKind )1, "Open socket %d:\n", fd);
6619   return;   6619   return;
6620 }   6620 }
6621 }   6621 }
6622 void vgPlain_show_open_fds(void)   6622 void vgPlain_show_open_fds(void)
6623 {   6623 {
6624   OpenFd *i ;   6624   OpenFd *i ;
6625   Int val ;   6625   Int val ;
6626   UInt len ;   6626   UInt len ;
6627   Int tmp ;   6627   Int tmp ;
6628     6628  
6629   {   6629   {
6630   i = allocated_fds;   6630   i = allocated_fds;
6631   vgPlain_message((VgMsgKind )1, "FILE DESCRIPTORS: %d open at exit.\n",   6631   vgPlain_message((VgMsgKind )1, "FILE DESCRIPTORS: %d open at exit.\n",
6632                   fd_count);   6632                   fd_count);
6633   while (i) {   6633   while (i) {
6634     if (i->pathname) {   6634     if (i->pathname) {
6635       vgPlain_message((VgMsgKind )1, "Open file descriptor %d: %s\n", i->fd,   6635       vgPlain_message((VgMsgKind )1, "Open file descriptor %d: %s\n", i->fd,
6636                       i->pathname);   6636                       i->pathname);
6637     } else {   6637     } else {
6638       len = sizeof(val);   6638       len = sizeof(val);
6639       tmp = vgPlain_getsockopt(i->fd, 1, 3, (void *)(& val), (Int *)(& len));   6639       tmp = vgPlain_getsockopt(i->fd, 1, 3, (void *)(& val), (Int *)(& len));
6640       if (tmp == -1) {   6640       if (tmp == -1) {
6641         vgPlain_message((VgMsgKind )1, "Open file descriptor %d:\n", i->fd);   6641         vgPlain_message((VgMsgKind )1, "Open file descriptor %d:\n", i->fd);
6642       } else {   6642       } else {
6643         getsockdetails(i->fd);   6643         getsockdetails(i->fd);
6644       }   6644       }
6645     }   6645     }
6646     if (i->where) {   6646     if (i->where) {
6647       vgPlain_pp_ExeContext(i->where);   6647       vgPlain_pp_ExeContext(i->where);
6648       vgPlain_message((VgMsgKind )1, "\n");   6648       vgPlain_message((VgMsgKind )1, "\n");
6649     } else {   6649     } else {
6650       vgPlain_message((VgMsgKind )1, "   <inherited from parent>\n");   6650       vgPlain_message((VgMsgKind )1, "   <inherited from parent>\n");
6651       vgPlain_message((VgMsgKind )1, "\n");   6651       vgPlain_message((VgMsgKind )1, "\n");
6652     }   6652     }
6653     i = i->next;   6653     i = i->next;
6654   }   6654   }
6655   vgPlain_message((VgMsgKind )1, "\n");   6655   vgPlain_message((VgMsgKind )1, "\n");
6656   return;   6656   return;
6657 }   6657 }
6658 }   6658 }
6659 static void init_preopened_fds_without_proc_self_fd(void)   6659 static void init_preopened_fds_without_proc_self_fd(void)
6660 {   6660 {
6661   struct vki_rlimit lim ;   6661   struct vki_rlimit lim ;
6662   UInt count ;   6662   UInt count ;
6663   Int i ;   6663   Int i ;
6664   Int tmp ;   6664   Int tmp ;
6665   Int tmp___0 ;   6665   Int tmp___0 ;
6666     6666  
6667   {   6667   {
6668   tmp = vgPlain_getrlimit(7, & lim);   6668   tmp = vgPlain_getrlimit(7, & lim);
6669   if (tmp == -1) {   6669   if (tmp == -1) {
6670     count = (UInt )1024;   6670     count = (UInt )1024;
6671   } else {   6671   } else {
6672     count = (UInt )lim.rlim_cur;   6672     count = (UInt )lim.rlim_cur;
6673   }   6673   }
6674   i = 0;   6674   i = 0;
6675   while ((UInt )i < count) {   6675   while ((UInt )i < count) {
6676     tmp___0 = vgPlain_fcntl(i, 3, (Addr )0);   6676     tmp___0 = vgPlain_fcntl(i, 3, (Addr )0);
6677     if (tmp___0 != -1) {   6677     if (tmp___0 != -1) {
6678       vgModuleLocal_record_fd_open_named((ThreadId )-1, i);   6678       vgModuleLocal_record_fd_open_named((ThreadId )-1, i);
6679     } else {   6679     } else {
6680     6680  
6681     }   6681     }
6682     i ++;   6682     i ++;
6683   }   6683   }
6684   return;   6684   return;
6685 }   6685 }
6686 }   6686 }
6687 void vgPlain_init_preopened_fds(void)   6687 void vgPlain_init_preopened_fds(void)
6688 {   6688 {
6689   Int ret ;   6689   Int ret ;
6690   struct vki_dirent d ;   6690   struct vki_dirent d ;
6691   SysRes f ;   6691   SysRes f ;
6692   Bool tmp ;   6692   Bool tmp ;
6693   Char *s ;   6693   Char *s ;
6694   Int fno ;   6694   Int fno ;
6695   Long tmp___0 ;   6695   Long tmp___0 ;
6696   UWord tmp___1 ;   6696   UWord tmp___1 ;
6697   Int tmp___2 ;   6697   Int tmp___2 ;
6698   Int tmp___3 ;   6698   Int tmp___3 ;
6699   UWord tmp___4 ;   6699   UWord tmp___4 ;
6700   UWord tmp___5 ;   6700   UWord tmp___5 ;
6701   UWord tmp___6 ;   6701   UWord tmp___6 ;
6702     6702  
6703   {   6703   {
6704   f = vgPlain_open((Char const   *)"/proc/self/fd", 0, 0);   6704   f = vgPlain_open((Char const   *)"/proc/self/fd", 0, 0);
6705   tmp = sr_isError(f);   6705   tmp = sr_isError(f);
6706   if (tmp) {   6706   if (tmp) {
6707     init_preopened_fds_without_proc_self_fd();   6707     init_preopened_fds_without_proc_self_fd();
6708     return;   6708     return;
6709   } else {   6709   } else {
6710     6710  
6711   }   6711   }
6712   while (1) {   6712   while (1) {
6713     tmp___5 = sr_Res(f);   6713     tmp___5 = sr_Res(f);
6714     ret = vgPlain_getdents((Int )tmp___5, & d, sizeof(d));   6714     ret = vgPlain_getdents((Int )tmp___5, & d, sizeof(d));
6715     if (ret != 0) {   6715     if (ret != 0) {
6716     6716  
6717     } else {   6717     } else {
6718       break;   6718       break;
6719     }   6719     }
6720     if (ret == -1) {   6720     if (ret == -1) {
6721       goto out;   6721       goto out;
6722     } else {   6722     } else {
6723     6723  
6724     }   6724     }
6725     tmp___2 = vgPlain_strcmp((Char const   *)(d.d_name), (Char const   *)".");   6725     tmp___2 = vgPlain_strcmp((Char const   *)(d.d_name), (Char const   *)".");
6726     if (tmp___2) {   6726     if (tmp___2) {
6727       tmp___3 = vgPlain_strcmp((Char const   *)(d.d_name), (Char const   *)"..");   6727       tmp___3 = vgPlain_strcmp((Char const   *)(d.d_name), (Char const   *)"..");
6728       if (tmp___3) {   6728       if (tmp___3) {
6729         tmp___0 = vgPlain_strtoll10((Char *)(d.d_name), & s);   6729         tmp___0 = vgPlain_strtoll10((Char *)(d.d_name), & s);
6730         fno = (Int )tmp___0;   6730         fno = (Int )tmp___0;
6731         if ((int )*s == 0) {   6731         if ((int )*s == 0) {
6732           tmp___1 = sr_Res(f);   6732           tmp___1 = sr_Res(f);
6733           if ((UWord )fno != tmp___1) {   6733           if ((UWord )fno != tmp___1) {
6734             if (vgPlain_clo_track_fds) {   6734             if (vgPlain_clo_track_fds) {
6735               vgModuleLocal_record_fd_open_named((ThreadId )-1, fno);   6735               vgModuleLocal_record_fd_open_named((ThreadId )-1, fno);
6736             } else {   6736             } else {
6737     6737  
6738             }   6738             }
6739           } else {   6739           } else {
6740     6740  
6741           }   6741           }
6742         } else {   6742         } else {
6743           vgPlain_message((VgMsgKind )2,   6743           vgPlain_message((VgMsgKind )2,
6744                           "Warning: invalid file name in /proc/self/fd: %s\n",   6744                           "Warning: invalid file name in /proc/self/fd: %s\n",
6745                           d.d_name);   6745                           d.d_name);
6746         }   6746         }
6747       } else {   6747       } else {
6748     6748  
6749       }   6749       }
6750     } else {   6750     } else {
6751     6751  
6752     }   6752     }
6753     tmp___4 = sr_Res(f);   6753     tmp___4 = sr_Res(f);
6754     vgPlain_lseek((Int )tmp___4, (Off64T )d.d_off, 0);   6754     vgPlain_lseek((Int )tmp___4, (Off64T )d.d_off, 0);
6755   }   6755   }
6756   out:   6756   out:
6757   tmp___6 = sr_Res(f);   6757   tmp___6 = sr_Res(f);
6758   vgPlain_close((Int )tmp___6);   6758   vgPlain_close((Int )tmp___6);
6759   return;   6759   return;
6760 }   6760 }
6761 }   6761 }
6762 static Char *strdupcat(HChar *cc , Char const   *s1 , Char const   *s2 ,   6762 static Char *strdupcat(HChar *cc , Char const   *s1 , Char const   *s2 ,
6763                        ArenaId aid )   6763                        ArenaId aid )
6764 {   6764 {
6765   UInt len ;   6765   UInt len ;
6766   SizeT tmp ;   6766   SizeT tmp ;
6767   SizeT tmp___0 ;   6767   SizeT tmp___0 ;
6768   Char *result ;   6768   Char *result ;
6769   void *tmp___1 ;   6769   void *tmp___1 ;
6770     6770  
6771   {   6771   {
6772   tmp = vgPlain_strlen(s1);   6772   tmp = vgPlain_strlen(s1);
6773   tmp___0 = vgPlain_strlen(s2);   6773   tmp___0 = vgPlain_strlen(s2);
6774   len = (UInt )((tmp + tmp___0) + 1UL);   6774   len = (UInt )((tmp + tmp___0) + 1UL);
6775   tmp___1 = vgPlain_arena_malloc(aid, cc, (SizeT )len);   6775   tmp___1 = vgPlain_arena_malloc(aid, cc, (SizeT )len);
6776   result = (Char *)tmp___1;   6776   result = (Char *)tmp___1;
6777   vgPlain_strcpy(result, s1);   6777   vgPlain_strcpy(result, s1);
6778   vgPlain_strcat(result, s2);   6778   vgPlain_strcat(result, s2);
6779   return (result);   6779   return (result);
6780 }   6780 }
6781 }   6781 }
6782 static void pre_mem_read_sendmsg(ThreadId tid , Bool read , Char *msg ,   6782 static void pre_mem_read_sendmsg(ThreadId tid , Bool read , Char *msg ,
6783                                  Addr base , SizeT size )   6783                                  Addr base , SizeT size )
6784 {   6784 {
6785   Char *outmsg ;   6785   Char *outmsg ;
6786   Char *tmp ;   6786   Char *tmp ;
6787     6787  
6788   {   6788   {
6789   tmp = strdupcat((HChar *)"di.syswrap.pmrs.1", (Char const   *)"sendmsg",   6789   tmp = strdupcat((HChar *)"di.syswrap.pmrs.1", (Char const   *)"sendmsg",
6790                   (Char const   *)msg, 0);   6790                   (Char const   *)msg, 0);
6791   outmsg = tmp;   6791   outmsg = tmp;
6792   while (1) {   6792   while (1) {
6793     if (vgPlain_tdict.track_pre_mem_read) {   6793     if (vgPlain_tdict.track_pre_mem_read) {
6794       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg, base,   6794       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg, base,
6795                                             size);   6795                                             size);
6796     } else {   6796     } else {
6797     6797  
6798     }   6798     }
6799     break;   6799     break;
6800   }   6800   }
6801   vgPlain_arena_free(0, (void *)outmsg);   6801   vgPlain_arena_free(0, (void *)outmsg);
6802   return;   6802   return;
6803 }   6803 }
6804 }   6804 }
6805 static void pre_mem_write_recvmsg(ThreadId tid , Bool read , Char *msg ,   6805 static void pre_mem_write_recvmsg(ThreadId tid , Bool read , Char *msg ,
6806                                   Addr base , SizeT size )   6806                                   Addr base , SizeT size )
6807 {   6807 {
6808   Char *outmsg ;   6808   Char *outmsg ;
6809   Char *tmp ;   6809   Char *tmp ;
6810     6810  
6811   {   6811   {
6812   tmp = strdupcat((HChar *)"di.syswrap.pmwr.1", (Char const   *)"recvmsg",   6812   tmp = strdupcat((HChar *)"di.syswrap.pmwr.1", (Char const   *)"recvmsg",
6813                   (Char const   *)msg, 0);   6813                   (Char const   *)msg, 0);
6814   outmsg = tmp;   6814   outmsg = tmp;
6815   if (read) {   6815   if (read) {
6816     while (1) {   6816     while (1) {
6817       if (vgPlain_tdict.track_pre_mem_read) {   6817       if (vgPlain_tdict.track_pre_mem_read) {
6818         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg, base,   6818         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg, base,
6819                                               size);   6819                                               size);
6820       } else {   6820       } else {
6821     6821  
6822       }   6822       }
6823       break;   6823       break;
6824     }   6824     }
6825   } else {   6825   } else {
6826     while (1) {   6826     while (1) {
6827       if (vgPlain_tdict.track_pre_mem_write) {   6827       if (vgPlain_tdict.track_pre_mem_write) {
6828         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid, outmsg, base,   6828         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid, outmsg, base,
6829                                                size);   6829                                                size);
6830       } else {   6830       } else {
6831     6831  
6832       }   6832       }
6833       break;   6833       break;
6834     }   6834     }
6835   }   6835   }
6836   vgPlain_arena_free(0, (void *)outmsg);   6836   vgPlain_arena_free(0, (void *)outmsg);
6837   return;   6837   return;
6838 }   6838 }
6839 }   6839 }
6840 static void post_mem_write_recvmsg(ThreadId tid , Bool read , Char *fieldName ,   6840 static void post_mem_write_recvmsg(ThreadId tid , Bool read , Char *fieldName ,
6841                                    Addr base , SizeT size )   6841                                    Addr base , SizeT size )
6842 {   6842 {
6843     6843  
6844     6844  
6845   {   6845   {
6846   if (! read) {   6846   if (! read) {
6847     while (1) {   6847     while (1) {
6848       if (vgPlain_tdict.track_post_mem_write) {   6848       if (vgPlain_tdict.track_post_mem_write) {
6849         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, base, size);   6849         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, base, size);
6850       } else {   6850       } else {
6851     6851  
6852       }   6852       }
6853       break;   6853       break;
6854     }   6854     }
6855   } else {   6855   } else {
6856     6856  
6857   }   6857   }
6858   return;   6858   return;
6859 }   6859 }
6860 }   6860 }
6861 static void msghdr_foreachfield(ThreadId tid , Char *name ,   6861 static void msghdr_foreachfield(ThreadId tid , Char *name ,
6862                                 struct vki_msghdr *msg , UInt length ,   6862                                 struct vki_msghdr *msg , UInt length ,
6863                                 void (*foreach_func)(ThreadId  , Bool  ,   6863                                 void (*foreach_func)(ThreadId  , Bool  ,
6864                                                      Char * , Addr  , SizeT  ) )   6864                                                      Char * , Addr  , SizeT  ) )
6865 {   6865 {
6866   Char *fieldName ;   6866   Char *fieldName ;
6867   SizeT tmp ;   6867   SizeT tmp ;
6868   void *tmp___0 ;   6868   void *tmp___0 ;
6869   struct vki_iovec *iov ;   6869   struct vki_iovec *iov ;
6870   UInt i ;   6870   UInt i ;
6871   UInt iov_len ;   6871   UInt iov_len ;
6872   __vki_kernel_size_t tmp___1 ;   6872   __vki_kernel_size_t tmp___1 ;
6873     6873  
6874   {   6874   {
6875   if (! msg) {   6875   if (! msg) {
6876     return;   6876     return;
6877   } else {   6877   } else {
6878     6878  
6879   }   6879   }
6880   tmp = vgPlain_strlen((Char const   *)name);   6880   tmp = vgPlain_strlen((Char const   *)name);
6881   tmp___0 = vgPlain_arena_malloc(0, (HChar *)"di.syswrap.mfef", tmp + 32UL);   6881   tmp___0 = vgPlain_arena_malloc(0, (HChar *)"di.syswrap.mfef", tmp + 32UL);
6882   fieldName = (Char *)tmp___0;   6882   fieldName = (Char *)tmp___0;
6883   vgPlain_sprintf(fieldName, "(%s)", name);   6883   vgPlain_sprintf(fieldName, "(%s)", name);
6884   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_name),   6884   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_name),
6885                   (SizeT )sizeof(msg->msg_name));   6885                   (SizeT )sizeof(msg->msg_name));
6886   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_namelen),   6886   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_namelen),
6887                   (SizeT )sizeof(msg->msg_namelen));   6887                   (SizeT )sizeof(msg->msg_namelen));
6888   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_iov),   6888   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_iov),
6889                   (SizeT )sizeof(msg->msg_iov));   6889                   (SizeT )sizeof(msg->msg_iov));
6890   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_iovlen),   6890   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_iovlen),
6891                   (SizeT )sizeof(msg->msg_iovlen));   6891                   (SizeT )sizeof(msg->msg_iovlen));
6892   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_control),   6892   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_control),
6893                   (SizeT )sizeof(msg->msg_control));   6893                   (SizeT )sizeof(msg->msg_control));
6894   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_controllen),   6894   (*foreach_func)(tid, (Bool )1, fieldName, (Addr )(& msg->msg_controllen),
6895                   (SizeT )sizeof(msg->msg_controllen));   6895                   (SizeT )sizeof(msg->msg_controllen));
6896   (*foreach_func)(tid, (Bool )0, fieldName, (Addr )(& msg->msg_flags),   6896   (*foreach_func)(tid, (Bool )0, fieldName, (Addr )(& msg->msg_flags),
6897                   (SizeT )sizeof(msg->msg_flags));   6897                   (SizeT )sizeof(msg->msg_flags));
6898   if (msg->msg_name) {   6898   if (msg->msg_name) {
6899     vgPlain_sprintf(fieldName, "(%s.msg_name)", name);   6899     vgPlain_sprintf(fieldName, "(%s.msg_name)", name);
6900     (*foreach_func)(tid, (Bool )0, fieldName, (Addr )msg->msg_name,   6900     (*foreach_func)(tid, (Bool )0, fieldName, (Addr )msg->msg_name,
6901                     (SizeT )msg->msg_namelen);   6901                     (SizeT )msg->msg_namelen);
6902   } else {   6902   } else {
6903     6903  
6904   }   6904   }
6905   if (msg->msg_iov) {   6905   if (msg->msg_iov) {
6906     iov = msg->msg_iov;   6906     iov = msg->msg_iov;
6907     vgPlain_sprintf(fieldName, "(%s.msg_iov)", name);   6907     vgPlain_sprintf(fieldName, "(%s.msg_iov)", name);
6908     (*foreach_func)(tid, (Bool )1, fieldName, (Addr )iov,   6908     (*foreach_func)(tid, (Bool )1, fieldName, (Addr )iov,
6909                     (SizeT )(msg->msg_iovlen * sizeof(struct vki_iovec )));   6909                     (SizeT )(msg->msg_iovlen * sizeof(struct vki_iovec )));
6910     i = (UInt )0;   6910     i = (UInt )0;
6911     while (i < msg->msg_iovlen) {   6911     while (i < msg->msg_iovlen) {
6912       if (iov->iov_len <= length) {   6912       if (iov->iov_len <= length) {
6913         tmp___1 = iov->iov_len;   6913         tmp___1 = iov->iov_len;
6914       } else {   6914       } else {
6915         tmp___1 = length;   6915         tmp___1 = length;
6916       }   6916       }
6917       iov_len = tmp___1;   6917       iov_len = tmp___1;
6918       vgPlain_sprintf(fieldName, "(%s.msg_iov[%u])", name, i);   6918       vgPlain_sprintf(fieldName, "(%s.msg_iov[%u])", name, i);
6919       (*foreach_func)(tid, (Bool )0, fieldName, (Addr )iov->iov_base,   6919       (*foreach_func)(tid, (Bool )0, fieldName, (Addr )iov->iov_base,
6920                       (SizeT )iov_len);   6920                       (SizeT )iov_len);
6921       length -= iov_len;   6921       length -= iov_len;
6922       i ++;   6922       i ++;
6923       iov ++;   6923       iov ++;
6924     }   6924     }
6925   } else {   6925   } else {
6926     6926  
6927   }   6927   }
6928   if (msg->msg_control) {   6928   if (msg->msg_control) {
6929     vgPlain_sprintf(fieldName, "(%s.msg_control)", name);   6929     vgPlain_sprintf(fieldName, "(%s.msg_control)", name);
6930     (*foreach_func)(tid, (Bool )0, fieldName, (Addr )msg->msg_control,   6930     (*foreach_func)(tid, (Bool )0, fieldName, (Addr )msg->msg_control,
6931                     (SizeT )msg->msg_controllen);   6931                     (SizeT )msg->msg_controllen);
6932   } else {   6932   } else {
6933     6933  
6934   }   6934   }
6935   vgPlain_arena_free(0, (void *)fieldName);   6935   vgPlain_arena_free(0, (void *)fieldName);
6936   return;   6936   return;
6937 }   6937 }
6938 }   6938 }
6939 static void check_cmsg_for_fds(ThreadId tid , struct vki_msghdr *msg )   6939 static void check_cmsg_for_fds(ThreadId tid , struct vki_msghdr *msg )
6940 {   6940 {
6941   struct vki_cmsghdr *cm ;   6941   struct vki_cmsghdr *cm ;
6942   struct vki_cmsghdr *tmp ;   6942   struct vki_cmsghdr *tmp ;
6943   Int *fds ;   6943   Int *fds ;
6944   Int fdc ;   6944   Int fdc ;
6945   Int i ;   6945   Int i ;
6946     6946  
6947   {   6947   {
6948   if (msg->msg_controllen >= sizeof(struct vki_cmsghdr )) {   6948   if (msg->msg_controllen >= sizeof(struct vki_cmsghdr )) {
6949     tmp = (struct vki_cmsghdr *)msg->msg_control;   6949     tmp = (struct vki_cmsghdr *)msg->msg_control;
6950   } else {   6950   } else {
6951     tmp = (struct vki_cmsghdr *)((void *)0);   6951     tmp = (struct vki_cmsghdr *)((void *)0);
6952   }   6952   }
6953   cm = tmp;   6953   cm = tmp;
6954   while (cm) {   6954   while (cm) {
6955     if (cm->cmsg_level == 1) {   6955     if (cm->cmsg_level == 1) {
6956       if (cm->cmsg_type == 1) {   6956       if (cm->cmsg_type == 1) {
6957         fds = (Int *)((void *)((char *)cm + (((sizeof(struct vki_cmsghdr ) + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U))));   6957         fds = (Int *)((void *)((char *)cm + (((sizeof(struct vki_cmsghdr ) + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U))));
6958         fdc = (Int )((cm->cmsg_len - (((sizeof(struct vki_cmsghdr ) + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U))) / sizeof(int ));   6958         fdc = (Int )((cm->cmsg_len - (((sizeof(struct vki_cmsghdr ) + sizeof(long )) - 1U) & ~ (sizeof(long ) - 1U))) / sizeof(int ));
6959         i = 0;   6959         i = 0;
6960         while (i < fdc) {   6960         while (i < fdc) {
6961           if (vgPlain_clo_track_fds) {   6961           if (vgPlain_clo_track_fds) {
6962             vgModuleLocal_record_fd_open_named(tid, *(fds + i));   6962             vgModuleLocal_record_fd_open_named(tid, *(fds + i));
6963           } else {   6963           } else {
6964     6964  
6965           }   6965           }
6966           i ++;   6966           i ++;
6967         }   6967         }
6968       } else {   6968       } else {
6969     6969  
6970       }   6970       }
6971     } else {   6971     } else {
6972     6972  
6973     }   6973     }
6974     cm = vki_cmsg_nxthdr(msg, cm);   6974     cm = vki_cmsg_nxthdr(msg, cm);
6975   }   6975   }
6976   return;   6976   return;
6977 }   6977 }
6978 }   6978 }
6979 static void pre_mem_read_sockaddr(ThreadId tid , Char *description ,   6979 static void pre_mem_read_sockaddr(ThreadId tid , Char *description ,
6980                                   struct vki_sockaddr *sa , UInt salen )   6980                                   struct vki_sockaddr *sa , UInt salen )
6981 {   6981 {
6982   Char *outmsg ;   6982   Char *outmsg ;
6983   struct vki_sockaddr_un *sun ;   6983   struct vki_sockaddr_un *sun ;
6984   struct vki_sockaddr_in *sin ;   6984   struct vki_sockaddr_in *sin ;
6985   struct vki_sockaddr_in6 *sin6 ;   6985   struct vki_sockaddr_in6 *sin6 ;
6986   SizeT tmp ;   6986   SizeT tmp ;
6987   void *tmp___0 ;   6987   void *tmp___0 ;
6988     6988  
6989   {   6989   {
6990   sun = (struct vki_sockaddr_un *)sa;   6990   sun = (struct vki_sockaddr_un *)sa;
6991   sin = (struct vki_sockaddr_in *)sa;   6991   sin = (struct vki_sockaddr_in *)sa;
6992   sin6 = (struct vki_sockaddr_in6 *)sa;   6992   sin6 = (struct vki_sockaddr_in6 *)sa;
6993   if ((unsigned int )sa == (unsigned int )((void *)0)) {   6993   if ((unsigned int )sa == (unsigned int )((void *)0)) {
6994     return;   6994     return;
6995   } else   6995   } else
6996   if (salen == 0U) {   6996   if (salen == 0U) {
6997     return;   6997     return;
6998   } else {   6998   } else {
6999     6999  
7000   }   7000   }
7001   tmp = vgPlain_strlen((Char const   *)description);   7001   tmp = vgPlain_strlen((Char const   *)description);
7002   tmp___0 = vgPlain_arena_malloc(0, (HChar *)"di.syswrap.pmr_sockaddr.1",   7002   tmp___0 = vgPlain_arena_malloc(0, (HChar *)"di.syswrap.pmr_sockaddr.1",
7003                                  tmp + 30UL);   7003                                  tmp + 30UL);
7004   outmsg = (Char *)tmp___0;   7004   outmsg = (Char *)tmp___0;
7005   vgPlain_sprintf(outmsg, (HChar const   *)description, "sa_family");   7005   vgPlain_sprintf(outmsg, (HChar const   *)description, "sa_family");
7006   while (1) {   7006   while (1) {
7007     if (vgPlain_tdict.track_pre_mem_read) {   7007     if (vgPlain_tdict.track_pre_mem_read) {
7008       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7008       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7009                                             (Addr )(& sa->sa_family),   7009                                             (Addr )(& sa->sa_family),
7010                                             (SizeT )sizeof(vki_sa_family_t ));   7010                                             (SizeT )sizeof(vki_sa_family_t ));
7011     } else {   7011     } else {
7012     7012  
7013     }   7013     }
7014     break;   7014     break;
7015   }   7015   }
7016   switch ((int )sa->sa_family) {   7016   switch ((int )sa->sa_family) {
7017   case 1:   7017   case 1:
7018   vgPlain_sprintf(outmsg, (HChar const   *)description, "sun_path");   7018   vgPlain_sprintf(outmsg, (HChar const   *)description, "sun_path");
7019   while (1) {   7019   while (1) {
7020     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   7020     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
7021       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid, outmsg,   7021       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid, outmsg,
7022                                                    (Addr )(sun->sun_path));   7022                                                    (Addr )(sun->sun_path));
7023     } else {   7023     } else {
7024     7024  
7025     }   7025     }
7026     break;   7026     break;
7027   }   7027   }
7028   break;   7028   break;
7029   case 2:   7029   case 2:
7030   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin_port");   7030   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin_port");
7031   while (1) {   7031   while (1) {
7032     if (vgPlain_tdict.track_pre_mem_read) {   7032     if (vgPlain_tdict.track_pre_mem_read) {
7033       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7033       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7034                                             (Addr )(& sin->sin_port),   7034                                             (Addr )(& sin->sin_port),
7035                                             (SizeT )sizeof(sin->sin_port));   7035                                             (SizeT )sizeof(sin->sin_port));
7036     } else {   7036     } else {
7037     7037  
7038     }   7038     }
7039     break;   7039     break;
7040   }   7040   }
7041   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin_addr");   7041   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin_addr");
7042   while (1) {   7042   while (1) {
7043     if (vgPlain_tdict.track_pre_mem_read) {   7043     if (vgPlain_tdict.track_pre_mem_read) {
7044       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7044       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7045                                             (Addr )(& sin->sin_addr),   7045                                             (Addr )(& sin->sin_addr),
7046                                             (SizeT )sizeof(sin->sin_addr));   7046                                             (SizeT )sizeof(sin->sin_addr));
7047     } else {   7047     } else {
7048     7048  
7049     }   7049     }
7050     break;   7050     break;
7051   }   7051   }
7052   break;   7052   break;
7053   case 10:   7053   case 10:
7054   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_port");   7054   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_port");
7055   while (1) {   7055   while (1) {
7056     if (vgPlain_tdict.track_pre_mem_read) {   7056     if (vgPlain_tdict.track_pre_mem_read) {
7057       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7057       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7058                                             (Addr )(& sin6->sin6_port),   7058                                             (Addr )(& sin6->sin6_port),
7059                                             (SizeT )sizeof(sin6->sin6_port));   7059                                             (SizeT )sizeof(sin6->sin6_port));
7060     } else {   7060     } else {
7061     7061  
7062     }   7062     }
7063     break;   7063     break;
7064   }   7064   }
7065   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_flowinfo");   7065   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_flowinfo");
7066   while (1) {   7066   while (1) {
7067     if (vgPlain_tdict.track_pre_mem_read) {   7067     if (vgPlain_tdict.track_pre_mem_read) {
7068       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7068       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7069                                             (Addr )(& sin6->sin6_flowinfo),   7069                                             (Addr )(& sin6->sin6_flowinfo),
7070                                             (SizeT )sizeof(sin6->sin6_flowinfo));   7070                                             (SizeT )sizeof(sin6->sin6_flowinfo));
7071     } else {   7071     } else {
7072     7072  
7073     }   7073     }
7074     break;   7074     break;
7075   }   7075   }
7076   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_addr");   7076   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_addr");
7077   while (1) {   7077   while (1) {
7078     if (vgPlain_tdict.track_pre_mem_read) {   7078     if (vgPlain_tdict.track_pre_mem_read) {
7079       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7079       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7080                                             (Addr )(& sin6->sin6_addr),   7080                                             (Addr )(& sin6->sin6_addr),
7081                                             (SizeT )sizeof(sin6->sin6_addr));   7081                                             (SizeT )sizeof(sin6->sin6_addr));
7082     } else {   7082     } else {
7083     7083  
7084     }   7084     }
7085     break;   7085     break;
7086   }   7086   }
7087   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_scope_id");   7087   vgPlain_sprintf(outmsg, (HChar const   *)description, "sin6_scope_id");
7088   while (1) {   7088   while (1) {
7089     if (vgPlain_tdict.track_pre_mem_read) {   7089     if (vgPlain_tdict.track_pre_mem_read) {
7090       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7090       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7091                                             (Addr )(& sin6->sin6_scope_id),   7091                                             (Addr )(& sin6->sin6_scope_id),
7092                                             (SizeT )sizeof(sin6->sin6_scope_id));   7092                                             (SizeT )sizeof(sin6->sin6_scope_id));
7093     } else {   7093     } else {
7094     7094  
7095     }   7095     }
7096     break;   7096     break;
7097   }   7097   }
7098   break;   7098   break;
7099   default:   7099   default:
7100   vgPlain_sprintf(outmsg, (HChar const   *)description, "");   7100   vgPlain_sprintf(outmsg, (HChar const   *)description, "");
7101   while (1) {   7101   while (1) {
7102     if (vgPlain_tdict.track_pre_mem_read) {   7102     if (vgPlain_tdict.track_pre_mem_read) {
7103       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,   7103       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, outmsg,
7104                                             (Addr )sa, (SizeT )salen);   7104                                             (Addr )sa, (SizeT )salen);
7105     } else {   7105     } else {
7106     7106  
7107     }   7107     }
7108     break;   7108     break;
7109   }   7109   }
7110   break;   7110   break;
7111   }   7111   }
7112   vgPlain_arena_free(0, (void *)outmsg);   7112   vgPlain_arena_free(0, (void *)outmsg);
7113   return;   7113   return;
7114 }   7114 }
7115 }   7115 }
7116 static UInt deref_UInt(ThreadId tid , Addr a , Char *s )   7116 static UInt deref_UInt(ThreadId tid , Addr a , Char *s )
7117 {   7117 {
7118   UInt *a_p ;   7118   UInt *a_p ;
7119     7119  
7120   {   7120   {
7121   a_p = (UInt *)a;   7121   a_p = (UInt *)a;
7122   while (1) {   7122   while (1) {
7123     if (vgPlain_tdict.track_pre_mem_read) {   7123     if (vgPlain_tdict.track_pre_mem_read) {
7124       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, s, (Addr )a_p,   7124       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, s, (Addr )a_p,
7125                                             (SizeT )sizeof(UInt ));   7125                                             (SizeT )sizeof(UInt ));
7126     } else {   7126     } else {
7127     7127  
7128     }   7128     }
7129     break;   7129     break;
7130   }   7130   }
7131   if ((unsigned int )a_p == (unsigned int )((void *)0)) {   7131   if ((unsigned int )a_p == (unsigned int )((void *)0)) {
7132     return ((UInt )0);   7132     return ((UInt )0);
7133   } else {   7133   } else {
7134     return (*a_p);   7134     return (*a_p);
7135   }   7135   }
7136 }   7136 }
7137 }   7137 }
7138 void vgModuleLocal_buf_and_len_pre_check(ThreadId tid , Addr buf_p ,   7138 void vgModuleLocal_buf_and_len_pre_check(ThreadId tid , Addr buf_p ,
7139                                          Addr buflen_p , Char *buf_s ,   7139                                          Addr buflen_p , Char *buf_s ,
7140                                          Char *buflen_s )   7140                                          Char *buflen_s )
7141 {   7141 {
7142   UInt buflen_in ;   7142   UInt buflen_in ;
7143   UInt tmp ;   7143   UInt tmp ;
7144     7144  
7145   {   7145   {
7146   if (vgPlain_tdict.track_pre_mem_write) {   7146   if (vgPlain_tdict.track_pre_mem_write) {
7147     tmp = deref_UInt(tid, buflen_p, buflen_s);   7147     tmp = deref_UInt(tid, buflen_p, buflen_s);
7148     buflen_in = tmp;   7148     buflen_in = tmp;
7149     if (buflen_in > 0U) {   7149     if (buflen_in > 0U) {
7150       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid, buf_s, buf_p,   7150       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid, buf_s, buf_p,
7151                                              (SizeT )buflen_in);   7151                                              (SizeT )buflen_in);
7152     } else {   7152     } else {
7153     7153  
7154     }   7154     }
7155   } else {   7155   } else {
7156     7156  
7157   }   7157   }
7158   return;   7158   return;
7159 }   7159 }
7160 }   7160 }
7161 void vgModuleLocal_buf_and_len_post_check(ThreadId tid , SysRes res ,   7161 void vgModuleLocal_buf_and_len_post_check(ThreadId tid , SysRes res ,
7162                                           Addr buf_p , Addr buflen_p , Char *s )   7162                                           Addr buf_p , Addr buflen_p , Char *s )
7163 {   7163 {
7164   UInt buflen_out ;   7164   UInt buflen_out ;
7165   UInt tmp ;   7165   UInt tmp ;
7166   Bool tmp___0 ;   7166   Bool tmp___0 ;
7167     7167  
7168   {   7168   {
7169   tmp___0 = sr_isError(res);   7169   tmp___0 = sr_isError(res);
7170   if (tmp___0) {   7170   if (tmp___0) {
7171     7171  
7172   } else   7172   } else
7173   if (vgPlain_tdict.track_post_mem_write) {   7173   if (vgPlain_tdict.track_post_mem_write) {
7174     tmp = deref_UInt(tid, buflen_p, s);   7174     tmp = deref_UInt(tid, buflen_p, s);
7175     buflen_out = tmp;   7175     buflen_out = tmp;
7176     if (buflen_out > 0U) {   7176     if (buflen_out > 0U) {
7177       if (buf_p != (Addr )((void *)0)) {   7177       if (buf_p != (Addr )((void *)0)) {
7178         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, buf_p,   7178         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, buf_p,
7179                                                 (SizeT )buflen_out);   7179                                                 (SizeT )buflen_out);
7180       } else {   7180       } else {
7181     7181  
7182       }   7182       }
7183     } else {   7183     } else {
7184     7184  
7185     }   7185     }
7186   } else {   7186   } else {
7187     7187  
7188   }   7188   }
7189   return;   7189   return;
7190 }   7190 }
7191 }   7191 }
7192 static Addr do_brk(Addr newbrk )   7192 static Addr do_brk(Addr newbrk )
7193 {   7193 {
7194   NSegment const   *aseg ;   7194   NSegment const   *aseg ;
7195   NSegment const   *rseg ;   7195   NSegment const   *rseg ;
7196   Addr newbrkP ;   7196   Addr newbrkP ;
7197   SizeT delta ;   7197   SizeT delta ;
7198   Bool ok ;   7198   Bool ok ;
7199   Bool debug ;   7199   Bool debug ;
7200   NSegment const   *seg ;   7200   NSegment const   *seg ;
7201   NSegment const   *tmp ;   7201   NSegment const   *tmp ;
7202   NSegment const   *seg2 ;   7202   NSegment const   *seg2 ;
7203   long tmp___0 ;   7203   long tmp___0 ;
7204   long tmp___1 ;   7204   long tmp___1 ;
7205   long tmp___2 ;   7205   long tmp___2 ;
7206   long tmp___3 ;   7206   long tmp___3 ;
7207   long tmp___4 ;   7207   long tmp___4 ;
7208   long tmp___5 ;   7208   long tmp___5 ;
7209   long tmp___6 ;   7209   long tmp___6 ;
7210   int tmp___7 ;   7210   int tmp___7 ;
7211   long tmp___8 ;   7211   long tmp___8 ;
7212   long tmp___9 ;   7212   long tmp___9 ;
7213   long tmp___10 ;   7213   long tmp___10 ;
7214     7214  
7215   {   7215   {
7216   debug = (Bool )0;   7216   debug = (Bool )0;
7217   if (debug) {   7217   if (debug) {
7218     vgPlain_printf("\ndo_brk: brk_base=%#lx brk_limit=%#lx newbrk=%#lx\n",   7218     vgPlain_printf("\ndo_brk: brk_base=%#lx brk_limit=%#lx newbrk=%#lx\n",
7219                    vgPlain_brk_base, vgPlain_brk_limit, newbrk);   7219                    vgPlain_brk_base, vgPlain_brk_limit, newbrk);
7220   } else {   7220   } else {
7221     7221  
7222   }   7222   }
7223   if (newbrk < vgPlain_brk_base) {   7223   if (newbrk < vgPlain_brk_base) {
7224     goto bad;   7224     goto bad;
7225   } else {   7225   } else {
7226     7226  
7227   }   7227   }
7228   if (newbrk >= vgPlain_brk_base) {   7228   if (newbrk >= vgPlain_brk_base) {
7229     if (newbrk < vgPlain_brk_limit) {   7229     if (newbrk < vgPlain_brk_limit) {
7230       tmp = vgPlain_am_find_nsegment(newbrk);   7230       tmp = vgPlain_am_find_nsegment(newbrk);
7231       seg = tmp;   7231       seg = tmp;
7232       if (seg) {   7232       if (seg) {
7233         if (seg->hasT) {   7233         if (seg->hasT) {
7234           vgPlain_discard_translations((Addr64 )newbrk,   7234           vgPlain_discard_translations((Addr64 )newbrk,
7235                                        (ULong )(vgPlain_brk_limit - newbrk),   7235                                        (ULong )(vgPlain_brk_limit - newbrk),
7236                                        (HChar *)"do_brk(shrink)");   7236                                        (HChar *)"do_brk(shrink)");
7237         } else {   7237         } else {
7238     7238  
7239         }   7239         }
7240       } else {   7240       } else {
7241     7241  
7242       }   7242       }
7243       if (seg) {   7243       if (seg) {
7244         tmp___0 = __builtin_expect((long )(! (! (newbrk < vgPlain_brk_limit))),   7244         tmp___0 = __builtin_expect((long )(! (! (newbrk < vgPlain_brk_limit))),
7245                                    1L);   7245                                    1L);
7246         if (tmp___0) {   7246         if (tmp___0) {
7247     7247  
7248         } else {   7248         } else {
7249           vgPlain_assert_fail((Bool )1,   7249           vgPlain_assert_fail((Bool )1,
7250                               (Char const   *)"newbrk < VG_(brk_limit)",   7250                               (Char const   *)"newbrk < VG_(brk_limit)",
7251                               (Char const   *)"m_syswrap/syswrap-generic.c",   7251                               (Char const   *)"m_syswrap/syswrap-generic.c",
7252                               1080, (Char const   *)"do_brk", "");   7252                               1080, (Char const   *)"do_brk", "");
7253         }   7253         }
7254         seg2 = vgPlain_am_find_nsegment(vgPlain_brk_limit - 1UL);   7254         seg2 = vgPlain_am_find_nsegment(vgPlain_brk_limit - 1UL);
7255         if (seg2) {   7255         if (seg2) {
7256           if ((unsigned int )seg == (unsigned int )seg2) {   7256           if ((unsigned int )seg == (unsigned int )seg2) {
7257             if (seg->hasW) {   7257             if (seg->hasW) {
7258               vgPlain_memset((void *)newbrk, 0, vgPlain_brk_limit - newbrk);   7258               vgPlain_memset((void *)newbrk, 0, vgPlain_brk_limit - newbrk);
7259             } else {   7259             } else {
7260     7260  
7261             }   7261             }
7262           } else {   7262           } else {
7263     7263  
7264           }   7264           }
7265         } else {   7265         } else {
7266     7266  
7267         }   7267         }
7268       } else {   7268       } else {
7269     7269  
7270       }   7270       }
7271       vgPlain_brk_limit = newbrk;   7271       vgPlain_brk_limit = newbrk;
7272       return (newbrk);   7272       return (newbrk);
7273     } else {   7273     } else {
7274     7274  
7275     }   7275     }
7276   } else {   7276   } else {
7277     7277  
7278   }   7278   }
7279   if (vgPlain_brk_limit > vgPlain_brk_base) {   7279   if (vgPlain_brk_limit > vgPlain_brk_base) {
7280     aseg = vgPlain_am_find_nsegment(vgPlain_brk_limit - 1UL);   7280     aseg = vgPlain_am_find_nsegment(vgPlain_brk_limit - 1UL);
7281   } else {   7281   } else {
7282     aseg = vgPlain_am_find_nsegment(vgPlain_brk_limit);   7282     aseg = vgPlain_am_find_nsegment(vgPlain_brk_limit);
7283   }   7283   }
7284   rseg = vgPlain_am_next_nsegment((NSegment *)aseg, (Bool )1);   7284   rseg = vgPlain_am_next_nsegment((NSegment *)aseg, (Bool )1);
7285   tmp___1 = __builtin_expect((long )(! (! aseg)), 1L);   7285   tmp___1 = __builtin_expect((long )(! (! aseg)), 1L);
7286   if (tmp___1) {   7286   if (tmp___1) {
7287     7287  
7288   } else {   7288   } else {
7289     vgPlain_assert_fail((Bool )1, (Char const   *)"aseg",   7289     vgPlain_assert_fail((Bool )1, (Char const   *)"aseg",
7290                         (Char const   *)"m_syswrap/syswrap-generic.c", 1098,   7290                         (Char const   *)"m_syswrap/syswrap-generic.c", 1098,
7291                         (Char const   *)"do_brk", "");   7291                         (Char const   *)"do_brk", "");
7292   }   7292   }
7293   tmp___2 = __builtin_expect((long )(! (! rseg)), 1L);   7293   tmp___2 = __builtin_expect((long )(! (! rseg)), 1L);
7294   if (tmp___2) {   7294   if (tmp___2) {
7295     7295  
7296   } else {   7296   } else {
7297     vgPlain_assert_fail((Bool )1, (Char const   *)"rseg",   7297     vgPlain_assert_fail((Bool )1, (Char const   *)"rseg",
7298                         (Char const   *)"m_syswrap/syswrap-generic.c", 1099,   7298                         (Char const   *)"m_syswrap/syswrap-generic.c", 1099,
7299                         (Char const   *)"do_brk", "");   7299                         (Char const   *)"do_brk", "");
7300   }   7300   }
7301   tmp___3 = __builtin_expect((long )(! (! ((unsigned int const   )aseg->kind == 1U))),   7301   tmp___3 = __builtin_expect((long )(! (! ((unsigned int const   )aseg->kind == 1U))),
7302                              1L);   7302                              1L);
7303   if (tmp___3) {   7303   if (tmp___3) {
7304     7304  
7305   } else {   7305   } else {
7306     vgPlain_assert_fail((Bool )1, (Char const   *)"aseg->kind == SkAnonC",   7306     vgPlain_assert_fail((Bool )1, (Char const   *)"aseg->kind == SkAnonC",
7307                         (Char const   *)"m_syswrap/syswrap-generic.c", 1100,   7307                         (Char const   *)"m_syswrap/syswrap-generic.c", 1100,
7308                         (Char const   *)"do_brk", "");   7308                         (Char const   *)"do_brk", "");
7309   }   7309   }
7310   tmp___4 = __builtin_expect((long )(! (! ((unsigned int const   )rseg->kind == 6U))),   7310   tmp___4 = __builtin_expect((long )(! (! ((unsigned int const   )rseg->kind == 6U))),
7311                              1L);   7311                              1L);
7312   if (tmp___4) {   7312   if (tmp___4) {
7313     7313  
7314   } else {   7314   } else {
7315     vgPlain_assert_fail((Bool )1, (Char const   *)"rseg->kind == SkResvn",   7315     vgPlain_assert_fail((Bool )1, (Char const   *)"rseg->kind == SkResvn",
7316                         (Char const   *)"m_syswrap/syswrap-generic.c", 1101,   7316                         (Char const   *)"m_syswrap/syswrap-generic.c", 1101,
7317                         (Char const   *)"do_brk", "");   7317                         (Char const   *)"do_brk", "");
7318   }   7318   }
7319   tmp___5 = __builtin_expect((long )(! (! (aseg->end + 1UL == rseg->start))), 1L);   7319   tmp___5 = __builtin_expect((long )(! (! (aseg->end + 1UL == rseg->start))), 1L);
7320   if (tmp___5) {   7320   if (tmp___5) {
7321     7321  
7322   } else {   7322   } else {
7323     vgPlain_assert_fail((Bool )1, (Char const   *)"aseg->end+1 == rseg->start",   7323     vgPlain_assert_fail((Bool )1, (Char const   *)"aseg->end+1 == rseg->start",
7324                         (Char const   *)"m_syswrap/syswrap-generic.c", 1102,   7324                         (Char const   *)"m_syswrap/syswrap-generic.c", 1102,
7325                         (Char const   *)"do_brk", "");   7325                         (Char const   *)"do_brk", "");
7326   }   7326   }
7327   tmp___6 = __builtin_expect((long )(! (! (newbrk >= vgPlain_brk_base))), 1L);   7327   tmp___6 = __builtin_expect((long )(! (! (newbrk >= vgPlain_brk_base))), 1L);
7328   if (tmp___6) {   7328   if (tmp___6) {
7329     7329  
7330   } else {   7330   } else {
7331     vgPlain_assert_fail((Bool )1, (Char const   *)"newbrk >= VG_(brk_base)",   7331     vgPlain_assert_fail((Bool )1, (Char const   *)"newbrk >= VG_(brk_base)",
7332                         (Char const   *)"m_syswrap/syswrap-generic.c", 1104,   7332                         (Char const   *)"m_syswrap/syswrap-generic.c", 1104,
7333                         (Char const   *)"do_brk", "");   7333                         (Char const   *)"do_brk", "");
7334   }   7334   }
7335   if (newbrk <= (Addr )rseg->start) {   7335   if (newbrk <= (Addr )rseg->start) {
7336     vgPlain_brk_limit = newbrk;   7336     vgPlain_brk_limit = newbrk;
7337     return (newbrk);   7337     return (newbrk);
7338   } else {   7338   } else {
7339     7339  
7340   }   7340   }
7341   if (newbrk > (Addr )((rseg->end + 1UL) - (Addr const   )(1UL << 12))) {   7341   if (newbrk > (Addr )((rseg->end + 1UL) - (Addr const   )(1UL << 12))) {
7342     goto bad;   7342     goto bad;
7343   } else {   7343   } else {
7344     7344  
7345   }   7345   }
7346   newbrkP = ((newbrk + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);   7346   newbrkP = ((newbrk + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);
7347   if (newbrkP > (Addr )rseg->start) {   7347   if (newbrkP > (Addr )rseg->start) {
7348     if (newbrkP <= (Addr )((rseg->end + 1UL) - (Addr const   )(1UL << 12))) {   7348     if (newbrkP <= (Addr )((rseg->end + 1UL) - (Addr const   )(1UL << 12))) {
7349       tmp___7 = 1;   7349       tmp___7 = 1;
7350     } else {   7350     } else {
7351       tmp___7 = 0;   7351       tmp___7 = 0;
7352     }   7352     }
7353   } else {   7353   } else {
7354     tmp___7 = 0;   7354     tmp___7 = 0;
7355   }   7355   }
7356   tmp___8 = __builtin_expect((long )tmp___7, 1L);   7356   tmp___8 = __builtin_expect((long )tmp___7, 1L);
7357   if (tmp___8) {   7357   if (tmp___8) {
7358     7358  
7359   } else {   7359   } else {
7360     vgPlain_assert_fail((Bool )1,   7360     vgPlain_assert_fail((Bool )1,
7361                         (Char const   *)"newbrkP > rseg->start && newbrkP <= rseg->end+1 - VKI_PAGE_SIZE",   7361                         (Char const   *)"newbrkP > rseg->start && newbrkP <= rseg->end+1 - VKI_PAGE_SIZE",
7362                         (Char const   *)"m_syswrap/syswrap-generic.c", 1118,   7362                         (Char const   *)"m_syswrap/syswrap-generic.c", 1118,
7363                         (Char const   *)"do_brk", "");   7363                         (Char const   *)"do_brk", "");
7364   }   7364   }
7365   delta = newbrkP - (Addr )rseg->start;   7365   delta = newbrkP - (Addr )rseg->start;
7366   tmp___9 = __builtin_expect((long )(! (! (delta > 0UL))), 1L);   7366   tmp___9 = __builtin_expect((long )(! (! (delta > 0UL))), 1L);
7367   if (tmp___9) {   7367   if (tmp___9) {
7368     7368  
7369   } else {   7369   } else {
7370     vgPlain_assert_fail((Bool )1, (Char const   *)"delta > 0",   7370     vgPlain_assert_fail((Bool )1, (Char const   *)"delta > 0",
7371                         (Char const   *)"m_syswrap/syswrap-generic.c", 1120,   7371                         (Char const   *)"m_syswrap/syswrap-generic.c", 1120,
7372                         (Char const   *)"do_brk", "");   7372                         (Char const   *)"do_brk", "");
7373   }   7373   }
7374   tmp___10 = __builtin_expect((long )(! (! (0UL == (delta & ((1UL << 12) - 1UL))))),   7374   tmp___10 = __builtin_expect((long )(! (! (0UL == (delta & ((1UL << 12) - 1UL))))),
7375                               1L);   7375                               1L);
7376   if (tmp___10) {   7376   if (tmp___10) {
7377     7377  
7378   } else {   7378   } else {
7379     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(delta)",   7379     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_IS_PAGE_ALIGNED(delta)",
7380                         (Char const   *)"m_syswrap/syswrap-generic.c", 1121,   7380                         (Char const   *)"m_syswrap/syswrap-generic.c", 1121,
7381                         (Char const   *)"do_brk", "");   7381                         (Char const   *)"do_brk", "");
7382   }   7382   }
7383   ok = vgPlain_am_extend_into_adjacent_reservation_client((NSegment *)aseg,   7383   ok = vgPlain_am_extend_into_adjacent_reservation_client((NSegment *)aseg,
7384                                                           (SSizeT )delta);   7384                                                           (SSizeT )delta);
7385   if (! ok) {   7385   if (! ok) {
7386     goto bad;   7386     goto bad;
7387   } else {   7387   } else {
7388     7388  
7389   }   7389   }
7390   vgPlain_brk_limit = newbrk;   7390   vgPlain_brk_limit = newbrk;
7391   return (newbrk);   7391   return (newbrk);
7392   bad:   7392   bad:
7393   return (vgPlain_brk_limit);   7393   return (vgPlain_brk_limit);
7394 }   7394 }
7395 }   7395 }
7396 Bool vgModuleLocal_fd_allowed(Int fd , Char const   *syscallname ,   7396 Bool vgModuleLocal_fd_allowed(Int fd , Char const   *syscallname ,
7397                               ThreadId tid , Bool isNewFd )   7397                               ThreadId tid , Bool isNewFd )
7398 {   7398 {
7399   Bool allowed ;   7399   Bool allowed ;
7400   Bool tmp ;   7400   Bool tmp ;
7401     7401  
7402   {   7402   {
7403   allowed = (Bool )1;   7403   allowed = (Bool )1;
7404   if (fd < 0) {   7404   if (fd < 0) {
7405     allowed = (Bool )0;   7405     allowed = (Bool )0;
7406   } else   7406   } else
7407   if (fd >= vgPlain_fd_hard_limit) {   7407   if (fd >= vgPlain_fd_hard_limit) {
7408     allowed = (Bool )0;   7408     allowed = (Bool )0;
7409   } else {   7409   } else {
7410     7410  
7411   }   7411   }
7412   if (fd == vgPlain_log_output_sink.fd) {   7412   if (fd == vgPlain_log_output_sink.fd) {
7413     allowed = (Bool )0;   7413     allowed = (Bool )0;
7414   } else   7414   } else
7415   if (fd == vgPlain_xml_output_sink.fd) {   7415   if (fd == vgPlain_xml_output_sink.fd) {
7416     allowed = (Bool )0;   7416     allowed = (Bool )0;
7417   } else {   7417   } else {
7418     7418  
7419   }   7419   }
7420   if (isNewFd) {   7420   if (isNewFd) {
7421     if (fd >= vgPlain_fd_soft_limit) {   7421     if (fd >= vgPlain_fd_soft_limit) {
7422       allowed = (Bool )0;   7422       allowed = (Bool )0;
7423     } else {   7423     } else {
7424     7424  
7425     }   7425     }
7426   } else {   7426   } else {
7427     7427  
7428   }   7428   }
7429   if (! allowed) {   7429   if (! allowed) {
7430     tmp = vgPlain_showing_core_errors();   7430     tmp = vgPlain_showing_core_errors();
7431     if (tmp) {   7431     if (tmp) {
7432       vgPlain_message((VgMsgKind )1,   7432       vgPlain_message((VgMsgKind )1,
7433                       "Warning: invalid file descriptor %d in syscall %s()\n",   7433                       "Warning: invalid file descriptor %d in syscall %s()\n",
7434                       fd, syscallname);   7434                       fd, syscallname);
7435       if (fd == vgPlain_log_output_sink.fd) {   7435       if (fd == vgPlain_log_output_sink.fd) {
7436         if (vgPlain_log_output_sink.fd >= 0) {   7436         if (vgPlain_log_output_sink.fd >= 0) {
7437           vgPlain_message((VgMsgKind )1,   7437           vgPlain_message((VgMsgKind )1,
7438                           "   Use --log-fd=<number> to select an alternative log fd.\n");   7438                           "   Use --log-fd=<number> to select an alternative log fd.\n");
7439         } else {   7439         } else {
7440     7440  
7441         }   7441         }
7442       } else {   7442       } else {
7443     7443  
7444       }   7444       }
7445       if (fd == vgPlain_xml_output_sink.fd) {   7445       if (fd == vgPlain_xml_output_sink.fd) {
7446         if (vgPlain_xml_output_sink.fd >= 0) {   7446         if (vgPlain_xml_output_sink.fd >= 0) {
7447           vgPlain_message((VgMsgKind )1,   7447           vgPlain_message((VgMsgKind )1,
7448                           "   Use --xml-fd=<number> to select an alternative XML output fd.\n");   7448                           "   Use --xml-fd=<number> to select an alternative XML output fd.\n");
7449         } else {   7449         } else {
7450     7450  
7451         }   7451         }
7452       } else {   7452       } else {
7453     7453  
7454       }   7454       }
7455       if (vgPlain_clo_verbosity > 1) {   7455       if (vgPlain_clo_verbosity > 1) {
7456         vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);   7456         vgPlain_get_and_pp_StackTrace(tid, (UInt )vgPlain_clo_backtrace_size);
7457       } else {   7457       } else {
7458     7458  
7459       }   7459       }
7460     } else {   7460     } else {
7461     7461  
7462     }   7462     }
7463   } else {   7463   } else {
7464     7464  
7465   }   7465   }
7466   return (allowed);   7466   return (allowed);
7467 }   7467 }
7468 }   7468 }
7469 void vgModuleLocal_generic_PRE_sys_socketpair(ThreadId tid , UWord arg0 ,   7469 void vgModuleLocal_generic_PRE_sys_socketpair(ThreadId tid , UWord arg0 ,
7470                                               UWord arg1 , UWord arg2 ,   7470                                               UWord arg1 , UWord arg2 ,
7471                                               UWord arg3 )   7471                                               UWord arg3 )
7472 {   7472 {
7473     7473  
7474     7474  
7475   {   7475   {
7476   while (1) {   7476   while (1) {
7477     if (vgPlain_tdict.track_pre_mem_write) {   7477     if (vgPlain_tdict.track_pre_mem_write) {
7478       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   7478       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
7479                                              (Char *)"socketcall.socketpair(sv)",   7479                                              (Char *)"socketcall.socketpair(sv)",
7480                                              arg3, (SizeT )(2U * sizeof(int )));   7480                                              arg3, (SizeT )(2U * sizeof(int )));
7481     } else {   7481     } else {
7482     7482  
7483     }   7483     }
7484     break;   7484     break;
7485   }   7485   }
7486   return;   7486   return;
7487 }   7487 }
7488 }   7488 }
7489 SysRes vgModuleLocal_generic_POST_sys_socketpair(ThreadId tid , SysRes res ,   7489 SysRes vgModuleLocal_generic_POST_sys_socketpair(ThreadId tid , SysRes res ,
7490                                                  UWord arg0 , UWord arg1 ,   7490                                                  UWord arg0 , UWord arg1 ,
7491                                                  UWord arg2 , UWord arg3 )   7491                                                  UWord arg2 , UWord arg3 )
7492 {   7492 {
7493   SysRes r ;   7493   SysRes r ;
7494   Int fd1 ;   7494   Int fd1 ;
7495   Int fd2 ;   7495   Int fd2 ;
7496   Bool tmp ;   7496   Bool tmp ;
7497   int tmp___0 ;   7497   int tmp___0 ;
7498   long tmp___1 ;   7498   long tmp___1 ;
7499   Bool tmp___2 ;   7499   Bool tmp___2 ;
7500   Bool tmp___3 ;   7500   Bool tmp___3 ;
7501     7501  
7502   {   7502   {
7503   r = res;   7503   r = res;
7504   fd1 = *((Int *)arg3 + 0);   7504   fd1 = *((Int *)arg3 + 0);
7505   fd2 = *((Int *)arg3 + 1);   7505   fd2 = *((Int *)arg3 + 1);
7506   tmp = sr_isError(res);   7506   tmp = sr_isError(res);
7507   if (tmp) {   7507   if (tmp) {
7508     tmp___0 = 0;   7508     tmp___0 = 0;
7509   } else {   7509   } else {
7510     tmp___0 = 1;   7510     tmp___0 = 1;
7511   }   7511   }
7512   tmp___1 = __builtin_expect((long )tmp___0, 1L);   7512   tmp___1 = __builtin_expect((long )tmp___0, 1L);
7513   if (tmp___1) {   7513   if (tmp___1) {
7514     7514  
7515   } else {   7515   } else {
7516     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",   7516     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",
7517                         (Char const   *)"m_syswrap/syswrap-generic.c", 1243,   7517                         (Char const   *)"m_syswrap/syswrap-generic.c", 1243,
7518                         (Char const   *)"vgModuleLocal_generic_POST_sys_socketpair",   7518                         (Char const   *)"vgModuleLocal_generic_POST_sys_socketpair",
7519                         "");   7519                         "");
7520   }   7520   }
7521   while (1) {   7521   while (1) {
7522     if (vgPlain_tdict.track_post_mem_write) {   7522     if (vgPlain_tdict.track_post_mem_write) {
7523       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg3,   7523       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg3,
7524                                               (SizeT )(2U * sizeof(int )));   7524                                               (SizeT )(2U * sizeof(int )));
7525     } else {   7525     } else {
7526     7526  
7527     }   7527     }
7528     break;   7528     break;
7529   }   7529   }
7530   tmp___2 = vgModuleLocal_fd_allowed(fd1,   7530   tmp___2 = vgModuleLocal_fd_allowed(fd1,
7531                                      (Char const   *)"socketcall.socketpair",   7531                                      (Char const   *)"socketcall.socketpair",
7532                                      tid, (Bool )1);   7532                                      tid, (Bool )1);
7533   if (tmp___2) {   7533   if (tmp___2) {
7534     tmp___3 = vgModuleLocal_fd_allowed(fd2,   7534     tmp___3 = vgModuleLocal_fd_allowed(fd2,
7535                                        (Char const   *)"socketcall.socketpair",   7535                                        (Char const   *)"socketcall.socketpair",
7536                                        tid, (Bool )1);   7536                                        tid, (Bool )1);
7537     if (tmp___3) {   7537     if (tmp___3) {
7538       while (1) {   7538       while (1) {
7539         if (vgPlain_tdict.track_post_mem_write) {   7539         if (vgPlain_tdict.track_post_mem_write) {
7540           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg3,   7540           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg3,
7541                                                   (SizeT )(2U * sizeof(int )));   7541                                                   (SizeT )(2U * sizeof(int )));
7542         } else {   7542         } else {
7543     7543  
7544         }   7544         }
7545         break;   7545         break;
7546       }   7546       }
7547       if (vgPlain_clo_track_fds) {   7547       if (vgPlain_clo_track_fds) {
7548         vgModuleLocal_record_fd_open_nameless(tid, fd1);   7548         vgModuleLocal_record_fd_open_nameless(tid, fd1);
7549         vgModuleLocal_record_fd_open_nameless(tid, fd2);   7549         vgModuleLocal_record_fd_open_nameless(tid, fd2);
7550       } else {   7550       } else {
7551     7551  
7552       }   7552       }
7553     } else {   7553     } else {
7554       vgPlain_close(fd1);   7554       vgPlain_close(fd1);
7555       vgPlain_close(fd2);   7555       vgPlain_close(fd2);
7556       r = vgPlain_mk_SysRes_Error((UWord )24);   7556       r = vgPlain_mk_SysRes_Error((UWord )24);
7557     }   7557     }
7558   } else {   7558   } else {
7559     vgPlain_close(fd1);   7559     vgPlain_close(fd1);
7560     vgPlain_close(fd2);   7560     vgPlain_close(fd2);
7561     r = vgPlain_mk_SysRes_Error((UWord )24);   7561     r = vgPlain_mk_SysRes_Error((UWord )24);
7562   }   7562   }
7563   return (r);   7563   return (r);
7564 }   7564 }
7565 }   7565 }
7566 SysRes vgModuleLocal_generic_POST_sys_socket(ThreadId tid , SysRes res )   7566 SysRes vgModuleLocal_generic_POST_sys_socket(ThreadId tid , SysRes res )
7567 {   7567 {
7568   SysRes r ;   7568   SysRes r ;
7569   Bool tmp ;   7569   Bool tmp ;
7570   int tmp___0 ;   7570   int tmp___0 ;
7571   long tmp___1 ;   7571   long tmp___1 ;
7572   UWord tmp___2 ;   7572   UWord tmp___2 ;
7573   UWord tmp___3 ;   7573   UWord tmp___3 ;
7574   UWord tmp___4 ;   7574   UWord tmp___4 ;
7575   Bool tmp___5 ;   7575   Bool tmp___5 ;
7576     7576  
7577   {   7577   {
7578   r = res;   7578   r = res;
7579   tmp = sr_isError(res);   7579   tmp = sr_isError(res);
7580   if (tmp) {   7580   if (tmp) {
7581     tmp___0 = 0;   7581     tmp___0 = 0;
7582   } else {   7582   } else {
7583     tmp___0 = 1;   7583     tmp___0 = 1;
7584   }   7584   }
7585   tmp___1 = __builtin_expect((long )tmp___0, 1L);   7585   tmp___1 = __builtin_expect((long )tmp___0, 1L);
7586   if (tmp___1) {   7586   if (tmp___1) {
7587     7587  
7588   } else {   7588   } else {
7589     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",   7589     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",
7590                         (Char const   *)"m_syswrap/syswrap-generic.c", 1266,   7590                         (Char const   *)"m_syswrap/syswrap-generic.c", 1266,
7591                         (Char const   *)"vgModuleLocal_generic_POST_sys_socket",   7591                         (Char const   *)"vgModuleLocal_generic_POST_sys_socket",
7592                         "");   7592                         "");
7593   }   7593   }
7594   tmp___4 = sr_Res(res);   7594   tmp___4 = sr_Res(res);
7595   tmp___5 = vgModuleLocal_fd_allowed((Int )tmp___4, (Char const   *)"socket",   7595   tmp___5 = vgModuleLocal_fd_allowed((Int )tmp___4, (Char const   *)"socket",
7596                                      tid, (Bool )1);   7596                                      tid, (Bool )1);
7597   if (tmp___5) {   7597   if (tmp___5) {
7598     if (vgPlain_clo_track_fds) {   7598     if (vgPlain_clo_track_fds) {
7599       tmp___3 = sr_Res(res);   7599       tmp___3 = sr_Res(res);
7600       vgModuleLocal_record_fd_open_nameless(tid, (Int )tmp___3);   7600       vgModuleLocal_record_fd_open_nameless(tid, (Int )tmp___3);
7601     } else {   7601     } else {
7602     7602  
7603     }   7603     }
7604   } else {   7604   } else {
7605     tmp___2 = sr_Res(res);   7605     tmp___2 = sr_Res(res);
7606     vgPlain_close((Int )tmp___2);   7606     vgPlain_close((Int )tmp___2);
7607     r = vgPlain_mk_SysRes_Error((UWord )24);   7607     r = vgPlain_mk_SysRes_Error((UWord )24);
7608   }   7608   }
7609   return (r);   7609   return (r);
7610 }   7610 }
7611 }   7611 }
7612 void vgModuleLocal_generic_PRE_sys_bind(ThreadId tid , UWord arg0 , UWord arg1 ,   7612 void vgModuleLocal_generic_PRE_sys_bind(ThreadId tid , UWord arg0 , UWord arg1 ,
7613                                         UWord arg2 )   7613                                         UWord arg2 )
7614 {   7614 {
7615     7615  
7616     7616  
7617   {   7617   {
7618   pre_mem_read_sockaddr(tid, (Char *)"socketcall.bind(my_addr.%s)",   7618   pre_mem_read_sockaddr(tid, (Char *)"socketcall.bind(my_addr.%s)",
7619                         (struct vki_sockaddr *)arg1, (UInt )arg2);   7619                         (struct vki_sockaddr *)arg1, (UInt )arg2);
7620   return;   7620   return;
7621 }   7621 }
7622 }   7622 }
7623 void vgModuleLocal_generic_PRE_sys_accept(ThreadId tid , UWord arg0 ,   7623 void vgModuleLocal_generic_PRE_sys_accept(ThreadId tid , UWord arg0 ,
7624                                           UWord arg1 , UWord arg2 )   7624                                           UWord arg1 , UWord arg2 )
7625 {   7625 {
7626   Addr addr_p ;   7626   Addr addr_p ;
7627   Addr addrlen_p ;   7627   Addr addrlen_p ;
7628     7628  
7629   {   7629   {
7630   addr_p = arg1;   7630   addr_p = arg1;
7631   addrlen_p = arg2;   7631   addrlen_p = arg2;
7632   if (addr_p != (Addr )((void *)0)) {   7632   if (addr_p != (Addr )((void *)0)) {
7633     vgModuleLocal_buf_and_len_pre_check(tid, addr_p, addrlen_p,   7633     vgModuleLocal_buf_and_len_pre_check(tid, addr_p, addrlen_p,
7634                                         (Char *)"socketcall.accept(addr)",   7634                                         (Char *)"socketcall.accept(addr)",
7635                                         (Char *)"socketcall.accept(addrlen_in)");   7635                                         (Char *)"socketcall.accept(addrlen_in)");
7636   } else {   7636   } else {
7637     7637  
7638   }   7638   }
7639   return;   7639   return;
7640 }   7640 }
7641 }   7641 }
7642 SysRes vgModuleLocal_generic_POST_sys_accept(ThreadId tid , SysRes res ,   7642 SysRes vgModuleLocal_generic_POST_sys_accept(ThreadId tid , SysRes res ,
7643                                              UWord arg0 , UWord arg1 ,   7643                                              UWord arg0 , UWord arg1 ,
7644                                              UWord arg2 )   7644                                              UWord arg2 )
7645 {   7645 {
7646   SysRes r ;   7646   SysRes r ;
7647   Bool tmp ;   7647   Bool tmp ;
7648   int tmp___0 ;   7648   int tmp___0 ;
7649   long tmp___1 ;   7649   long tmp___1 ;
7650   UWord tmp___2 ;   7650   UWord tmp___2 ;
7651   Addr addr_p ;   7651   Addr addr_p ;
7652   Addr addrlen_p ;   7652   Addr addrlen_p ;
7653   UWord tmp___3 ;   7653   UWord tmp___3 ;
7654   UWord tmp___4 ;   7654   UWord tmp___4 ;
7655   Bool tmp___5 ;   7655   Bool tmp___5 ;
7656     7656  
7657   {   7657   {
7658   r = res;   7658   r = res;
7659   tmp = sr_isError(res);   7659   tmp = sr_isError(res);
7660   if (tmp) {   7660   if (tmp) {
7661     tmp___0 = 0;   7661     tmp___0 = 0;
7662   } else {   7662   } else {
7663     tmp___0 = 1;   7663     tmp___0 = 1;
7664   }   7664   }
7665   tmp___1 = __builtin_expect((long )tmp___0, 1L);   7665   tmp___1 = __builtin_expect((long )tmp___0, 1L);
7666   if (tmp___1) {   7666   if (tmp___1) {
7667     7667  
7668   } else {   7668   } else {
7669     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",   7669     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",
7670                         (Char const   *)"m_syswrap/syswrap-generic.c", 1312,   7670                         (Char const   *)"m_syswrap/syswrap-generic.c", 1312,
7671                         (Char const   *)"vgModuleLocal_generic_POST_sys_accept",   7671                         (Char const   *)"vgModuleLocal_generic_POST_sys_accept",
7672                         "");   7672                         "");
7673   }   7673   }
7674   tmp___4 = sr_Res(res);   7674   tmp___4 = sr_Res(res);
7675   tmp___5 = vgModuleLocal_fd_allowed((Int )tmp___4, (Char const   *)"accept",   7675   tmp___5 = vgModuleLocal_fd_allowed((Int )tmp___4, (Char const   *)"accept",
7676                                      tid, (Bool )1);   7676                                      tid, (Bool )1);
7677   if (tmp___5) {   7677   if (tmp___5) {
7678     addr_p = arg1;   7678     addr_p = arg1;
7679     addrlen_p = arg2;   7679     addrlen_p = arg2;
7680     if (addr_p != (Addr )((void *)0)) {   7680     if (addr_p != (Addr )((void *)0)) {
7681       vgModuleLocal_buf_and_len_post_check(tid, res, addr_p, addrlen_p,   7681       vgModuleLocal_buf_and_len_post_check(tid, res, addr_p, addrlen_p,
7682                                            (Char *)"socketcall.accept(addrlen_out)");   7682                                            (Char *)"socketcall.accept(addrlen_out)");
7683     } else {   7683     } else {
7684     7684  
7685     }   7685     }
7686     if (vgPlain_clo_track_fds) {   7686     if (vgPlain_clo_track_fds) {
7687       tmp___3 = sr_Res(res);   7687       tmp___3 = sr_Res(res);
7688       vgModuleLocal_record_fd_open_nameless(tid, (Int )tmp___3);   7688       vgModuleLocal_record_fd_open_nameless(tid, (Int )tmp___3);
7689     } else {   7689     } else {
7690     7690  
7691     }   7691     }
7692   } else {   7692   } else {
7693     tmp___2 = sr_Res(res);   7693     tmp___2 = sr_Res(res);
7694     vgPlain_close((Int )tmp___2);   7694     vgPlain_close((Int )tmp___2);
7695     r = vgPlain_mk_SysRes_Error((UWord )24);   7695     r = vgPlain_mk_SysRes_Error((UWord )24);
7696   }   7696   }
7697   return (r);   7697   return (r);
7698 }   7698 }
7699 }   7699 }
7700 void vgModuleLocal_generic_PRE_sys_sendto(ThreadId tid , UWord arg0 ,   7700 void vgModuleLocal_generic_PRE_sys_sendto(ThreadId tid , UWord arg0 ,
7701                                           UWord arg1 , UWord arg2 , UWord arg3 ,   7701                                           UWord arg1 , UWord arg2 , UWord arg3 ,
7702                                           UWord arg4 , UWord arg5 )   7702                                           UWord arg4 , UWord arg5 )
7703 {   7703 {
7704     7704  
7705     7705  
7706   {   7706   {
7707   while (1) {   7707   while (1) {
7708     if (vgPlain_tdict.track_pre_mem_read) {   7708     if (vgPlain_tdict.track_pre_mem_read) {
7709       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   7709       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
7710                                             (Char *)"socketcall.sendto(msg)",   7710                                             (Char *)"socketcall.sendto(msg)",
7711                                             arg1, arg2);   7711                                             arg1, arg2);
7712     } else {   7712     } else {
7713     7713  
7714     }   7714     }
7715     break;   7715     break;
7716   }   7716   }
7717   pre_mem_read_sockaddr(tid, (Char *)"socketcall.sendto(to.%s)",   7717   pre_mem_read_sockaddr(tid, (Char *)"socketcall.sendto(to.%s)",
7718                         (struct vki_sockaddr *)arg4, (UInt )arg5);   7718                         (struct vki_sockaddr *)arg4, (UInt )arg5);
7719   return;   7719   return;
7720 }   7720 }
7721 }   7721 }
7722 void vgModuleLocal_generic_PRE_sys_send(ThreadId tid , UWord arg0 , UWord arg1 ,   7722 void vgModuleLocal_generic_PRE_sys_send(ThreadId tid , UWord arg0 , UWord arg1 ,
7723                                         UWord arg2 )   7723                                         UWord arg2 )
7724 {   7724 {
7725     7725  
7726     7726  
7727   {   7727   {
7728   while (1) {   7728   while (1) {
7729     if (vgPlain_tdict.track_pre_mem_read) {   7729     if (vgPlain_tdict.track_pre_mem_read) {
7730       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   7730       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
7731                                             (Char *)"socketcall.send(msg)",   7731                                             (Char *)"socketcall.send(msg)",
7732                                             arg1, arg2);   7732                                             arg1, arg2);
7733     } else {   7733     } else {
7734     7734  
7735     }   7735     }
7736     break;   7736     break;
7737   }   7737   }
7738   return;   7738   return;
7739 }   7739 }
7740 }   7740 }
7741 void vgModuleLocal_generic_PRE_sys_recvfrom(ThreadId tid , UWord arg0 ,   7741 void vgModuleLocal_generic_PRE_sys_recvfrom(ThreadId tid , UWord arg0 ,
7742                                             UWord arg1 , UWord arg2 ,   7742                                             UWord arg1 , UWord arg2 ,
7743                                             UWord arg3 , UWord arg4 ,   7743                                             UWord arg3 , UWord arg4 ,
7744                                             UWord arg5 )   7744                                             UWord arg5 )
7745 {   7745 {
7746   Addr buf_p ;   7746   Addr buf_p ;
7747   Int len ;   7747   Int len ;
7748   Addr from_p ;   7748   Addr from_p ;
7749   Addr fromlen_p ;   7749   Addr fromlen_p ;
7750     7750  
7751   {   7751   {
7752   buf_p = arg1;   7752   buf_p = arg1;
7753   len = (Int )arg2;   7753   len = (Int )arg2;
7754   from_p = arg4;   7754   from_p = arg4;
7755   fromlen_p = arg5;   7755   fromlen_p = arg5;
7756   while (1) {   7756   while (1) {
7757     if (vgPlain_tdict.track_pre_mem_write) {   7757     if (vgPlain_tdict.track_pre_mem_write) {
7758       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   7758       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
7759                                              (Char *)"socketcall.recvfrom(buf)",   7759                                              (Char *)"socketcall.recvfrom(buf)",
7760                                              buf_p, (SizeT )len);   7760                                              buf_p, (SizeT )len);
7761     } else {   7761     } else {
7762     7762  
7763     }   7763     }
7764     break;   7764     break;
7765   }   7765   }
7766   if (from_p != (Addr )((void *)0)) {   7766   if (from_p != (Addr )((void *)0)) {
7767     vgModuleLocal_buf_and_len_pre_check(tid, from_p, fromlen_p,   7767     vgModuleLocal_buf_and_len_pre_check(tid, from_p, fromlen_p,
7768                                         (Char *)"socketcall.recvfrom(from)",   7768                                         (Char *)"socketcall.recvfrom(from)",
7769                                         (Char *)"socketcall.recvfrom(fromlen_in)");   7769                                         (Char *)"socketcall.recvfrom(fromlen_in)");
7770   } else {   7770   } else {
7771     7771  
7772   }   7772   }
7773   return;   7773   return;
7774 }   7774 }
7775 }   7775 }
7776 void vgModuleLocal_generic_POST_sys_recvfrom(ThreadId tid , SysRes res ,   7776 void vgModuleLocal_generic_POST_sys_recvfrom(ThreadId tid , SysRes res ,
7777                                              UWord arg0 , UWord arg1 ,   7777                                              UWord arg0 , UWord arg1 ,
7778                                              UWord arg2 , UWord arg3 ,   7778                                              UWord arg2 , UWord arg3 ,
7779                                              UWord arg4 , UWord arg5 )   7779                                              UWord arg4 , UWord arg5 )
7780 {   7780 {
7781   Addr buf_p ;   7781   Addr buf_p ;
7782   Int len ;   7782   Int len ;
7783   Addr from_p ;   7783   Addr from_p ;
7784   Addr fromlen_p ;   7784   Addr fromlen_p ;
7785   Bool tmp ;   7785   Bool tmp ;
7786   int tmp___0 ;   7786   int tmp___0 ;
7787   long tmp___1 ;   7787   long tmp___1 ;
7788     7788  
7789   {   7789   {
7790   buf_p = arg1;   7790   buf_p = arg1;
7791   len = (Int )arg2;   7791   len = (Int )arg2;
7792   from_p = arg4;   7792   from_p = arg4;
7793   fromlen_p = arg5;   7793   fromlen_p = arg5;
7794   tmp = sr_isError(res);   7794   tmp = sr_isError(res);
7795   if (tmp) {   7795   if (tmp) {
7796     tmp___0 = 0;   7796     tmp___0 = 0;
7797   } else {   7797   } else {
7798     tmp___0 = 1;   7798     tmp___0 = 1;
7799   }   7799   }
7800   tmp___1 = __builtin_expect((long )tmp___0, 1L);   7800   tmp___1 = __builtin_expect((long )tmp___0, 1L);
7801   if (tmp___1) {   7801   if (tmp___1) {
7802     7802  
7803   } else {   7803   } else {
7804     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",   7804     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",
7805                         (Char const   *)"m_syswrap/syswrap-generic.c", 1391,   7805                         (Char const   *)"m_syswrap/syswrap-generic.c", 1391,
7806                         (Char const   *)"vgModuleLocal_generic_POST_sys_recvfrom",   7806                         (Char const   *)"vgModuleLocal_generic_POST_sys_recvfrom",
7807                         "");   7807                         "");
7808   }   7808   }
7809   if (from_p != (Addr )((void *)0)) {   7809   if (from_p != (Addr )((void *)0)) {
7810     vgModuleLocal_buf_and_len_post_check(tid, res, from_p, fromlen_p,   7810     vgModuleLocal_buf_and_len_post_check(tid, res, from_p, fromlen_p,
7811                                          (Char *)"socketcall.recvfrom(fromlen_out)");   7811                                          (Char *)"socketcall.recvfrom(fromlen_out)");
7812   } else {   7812   } else {
7813     7813  
7814   }   7814   }
7815   while (1) {   7815   while (1) {
7816     if (vgPlain_tdict.track_post_mem_write) {   7816     if (vgPlain_tdict.track_post_mem_write) {
7817       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, buf_p,   7817       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, buf_p,
7818                                               (SizeT )len);   7818                                               (SizeT )len);
7819     } else {   7819     } else {
7820     7820  
7821     }   7821     }
7822     break;   7822     break;
7823   }   7823   }
7824   return;   7824   return;
7825 }   7825 }
7826 }   7826 }
7827 void vgModuleLocal_generic_PRE_sys_recv(ThreadId tid , UWord arg0 , UWord arg1 ,   7827 void vgModuleLocal_generic_PRE_sys_recv(ThreadId tid , UWord arg0 , UWord arg1 ,
7828                                         UWord arg2 )   7828                                         UWord arg2 )
7829 {   7829 {
7830     7830  
7831     7831  
7832   {   7832   {
7833   while (1) {   7833   while (1) {
7834     if (vgPlain_tdict.track_pre_mem_write) {   7834     if (vgPlain_tdict.track_pre_mem_write) {
7835       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   7835       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
7836                                              (Char *)"socketcall.recv(buf)",   7836                                              (Char *)"socketcall.recv(buf)",
7837                                              arg1, arg2);   7837                                              arg1, arg2);
7838     } else {   7838     } else {
7839     7839  
7840     }   7840     }
7841     break;   7841     break;
7842   }   7842   }
7843   return;   7843   return;
7844 }   7844 }
7845 }   7845 }
7846 void vgModuleLocal_generic_POST_sys_recv(ThreadId tid , UWord res , UWord arg0 ,   7846 void vgModuleLocal_generic_POST_sys_recv(ThreadId tid , UWord res , UWord arg0 ,
7847                                          UWord arg1 , UWord arg2 )   7847                                          UWord arg1 , UWord arg2 )
7848 {   7848 {
7849     7849  
7850     7850  
7851   {   7851   {
7852   if (res >= 0UL) {   7852   if (res >= 0UL) {
7853     if (arg1 != 0UL) {   7853     if (arg1 != 0UL) {
7854       while (1) {   7854       while (1) {
7855         if (vgPlain_tdict.track_post_mem_write) {   7855         if (vgPlain_tdict.track_post_mem_write) {
7856           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg1, arg2);   7856           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg1, arg2);
7857         } else {   7857         } else {
7858     7858  
7859         }   7859         }
7860         break;   7860         break;
7861       }   7861       }
7862     } else {   7862     } else {
7863     7863  
7864     }   7864     }
7865   } else {   7865   } else {
7866     7866  
7867   }   7867   }
7868   return;   7868   return;
7869 }   7869 }
7870 }   7870 }
7871 void vgModuleLocal_generic_PRE_sys_connect(ThreadId tid , UWord arg0 ,   7871 void vgModuleLocal_generic_PRE_sys_connect(ThreadId tid , UWord arg0 ,
7872                                            UWord arg1 , UWord arg2 )   7872                                            UWord arg1 , UWord arg2 )
7873 {   7873 {
7874     7874  
7875     7875  
7876   {   7876   {
7877   pre_mem_read_sockaddr(tid, (Char *)"socketcall.connect(serv_addr.%s)",   7877   pre_mem_read_sockaddr(tid, (Char *)"socketcall.connect(serv_addr.%s)",
7878                         (struct vki_sockaddr *)arg1, (UInt )arg2);   7878                         (struct vki_sockaddr *)arg1, (UInt )arg2);
7879   return;   7879   return;
7880 }   7880 }
7881 }   7881 }
7882 void vgModuleLocal_generic_PRE_sys_setsockopt(ThreadId tid , UWord arg0 ,   7882 void vgModuleLocal_generic_PRE_sys_setsockopt(ThreadId tid , UWord arg0 ,
7883                                               UWord arg1 , UWord arg2 ,   7883                                               UWord arg1 , UWord arg2 ,
7884                                               UWord arg3 , UWord arg4 )   7884                                               UWord arg3 , UWord arg4 )
7885 {   7885 {
7886     7886  
7887     7887  
7888   {   7888   {
7889   while (1) {   7889   while (1) {
7890     if (vgPlain_tdict.track_pre_mem_read) {   7890     if (vgPlain_tdict.track_pre_mem_read) {
7891       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   7891       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
7892                                             (Char *)"socketcall.setsockopt(optval)",   7892                                             (Char *)"socketcall.setsockopt(optval)",
7893                                             arg3, arg4);   7893                                             arg3, arg4);
7894     } else {   7894     } else {
7895     7895  
7896     }   7896     }
7897     break;   7897     break;
7898   }   7898   }
7899   return;   7899   return;
7900 }   7900 }
7901 }   7901 }
7902 void vgModuleLocal_generic_PRE_sys_getsockname(ThreadId tid , UWord arg0 ,   7902 void vgModuleLocal_generic_PRE_sys_getsockname(ThreadId tid , UWord arg0 ,
7903                                                UWord arg1 , UWord arg2 )   7903                                                UWord arg1 , UWord arg2 )
7904 {   7904 {
7905   Addr name_p ;   7905   Addr name_p ;
7906   Addr namelen_p ;   7906   Addr namelen_p ;
7907     7907  
7908   {   7908   {
7909   name_p = arg1;   7909   name_p = arg1;
7910   namelen_p = arg2;   7910   namelen_p = arg2;
7911   vgModuleLocal_buf_and_len_pre_check(tid, name_p, namelen_p,   7911   vgModuleLocal_buf_and_len_pre_check(tid, name_p, namelen_p,
7912                                       (Char *)"socketcall.getsockname(name)",   7912                                       (Char *)"socketcall.getsockname(name)",
7913                                       (Char *)"socketcall.getsockname(namelen_in)");   7913                                       (Char *)"socketcall.getsockname(namelen_in)");
7914   return;   7914   return;
7915 }   7915 }
7916 }   7916 }
7917 void vgModuleLocal_generic_POST_sys_getsockname(ThreadId tid , SysRes res ,   7917 void vgModuleLocal_generic_POST_sys_getsockname(ThreadId tid , SysRes res ,
7918                                                 UWord arg0 , UWord arg1 ,   7918                                                 UWord arg0 , UWord arg1 ,
7919                                                 UWord arg2 )   7919                                                 UWord arg2 )
7920 {   7920 {
7921   Addr name_p ;   7921   Addr name_p ;
7922   Addr namelen_p ;   7922   Addr namelen_p ;
7923   Bool tmp ;   7923   Bool tmp ;
7924   int tmp___0 ;   7924   int tmp___0 ;
7925   long tmp___1 ;   7925   long tmp___1 ;
7926     7926  
7927   {   7927   {
7928   name_p = arg1;   7928   name_p = arg1;
7929   namelen_p = arg2;   7929   namelen_p = arg2;
7930   tmp = sr_isError(res);   7930   tmp = sr_isError(res);
7931   if (tmp) {   7931   if (tmp) {
7932     tmp___0 = 0;   7932     tmp___0 = 0;
7933   } else {   7933   } else {
7934     tmp___0 = 1;   7934     tmp___0 = 1;
7935   }   7935   }
7936   tmp___1 = __builtin_expect((long )tmp___0, 1L);   7936   tmp___1 = __builtin_expect((long )tmp___0, 1L);
7937   if (tmp___1) {   7937   if (tmp___1) {
7938     7938  
7939   } else {   7939   } else {
7940     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",   7940     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",
7941                         (Char const   *)"m_syswrap/syswrap-generic.c", 1475,   7941                         (Char const   *)"m_syswrap/syswrap-generic.c", 1475,
7942                         (Char const   *)"vgModuleLocal_generic_POST_sys_getsockname",   7942                         (Char const   *)"vgModuleLocal_generic_POST_sys_getsockname",
7943                         "");   7943                         "");
7944   }   7944   }
7945   vgModuleLocal_buf_and_len_post_check(tid, res, name_p, namelen_p,   7945   vgModuleLocal_buf_and_len_post_check(tid, res, name_p, namelen_p,
7946                                        (Char *)"socketcall.getsockname(namelen_out)");   7946                                        (Char *)"socketcall.getsockname(namelen_out)");
7947   return;   7947   return;
7948 }   7948 }
7949 }   7949 }
7950 void vgModuleLocal_generic_PRE_sys_getpeername(ThreadId tid , UWord arg0 ,   7950 void vgModuleLocal_generic_PRE_sys_getpeername(ThreadId tid , UWord arg0 ,
7951                                                UWord arg1 , UWord arg2 )   7951                                                UWord arg1 , UWord arg2 )
7952 {   7952 {
7953   Addr name_p ;   7953   Addr name_p ;
7954   Addr namelen_p ;   7954   Addr namelen_p ;
7955     7955  
7956   {   7956   {
7957   name_p = arg1;   7957   name_p = arg1;
7958   namelen_p = arg2;   7958   namelen_p = arg2;
7959   vgModuleLocal_buf_and_len_pre_check(tid, name_p, namelen_p,   7959   vgModuleLocal_buf_and_len_pre_check(tid, name_p, namelen_p,
7960                                       (Char *)"socketcall.getpeername(name)",   7960                                       (Char *)"socketcall.getpeername(name)",
7961                                       (Char *)"socketcall.getpeername(namelen_in)");   7961                                       (Char *)"socketcall.getpeername(namelen_in)");
7962   return;   7962   return;
7963 }   7963 }
7964 }   7964 }
7965 void vgModuleLocal_generic_POST_sys_getpeername(ThreadId tid , SysRes res ,   7965 void vgModuleLocal_generic_POST_sys_getpeername(ThreadId tid , SysRes res ,
7966                                                 UWord arg0 , UWord arg1 ,   7966                                                 UWord arg0 , UWord arg1 ,
7967                                                 UWord arg2 )   7967                                                 UWord arg2 )
7968 {   7968 {
7969   Addr name_p ;   7969   Addr name_p ;
7970   Addr namelen_p ;   7970   Addr namelen_p ;
7971   Bool tmp ;   7971   Bool tmp ;
7972   int tmp___0 ;   7972   int tmp___0 ;
7973   long tmp___1 ;   7973   long tmp___1 ;
7974     7974  
7975   {   7975   {
7976   name_p = arg1;   7976   name_p = arg1;
7977   namelen_p = arg2;   7977   namelen_p = arg2;
7978   tmp = sr_isError(res);   7978   tmp = sr_isError(res);
7979   if (tmp) {   7979   if (tmp) {
7980     tmp___0 = 0;   7980     tmp___0 = 0;
7981   } else {   7981   } else {
7982     tmp___0 = 1;   7982     tmp___0 = 1;
7983   }   7983   }
7984   tmp___1 = __builtin_expect((long )tmp___0, 1L);   7984   tmp___1 = __builtin_expect((long )tmp___0, 1L);
7985   if (tmp___1) {   7985   if (tmp___1) {
7986     7986  
7987   } else {   7987   } else {
7988     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",   7988     vgPlain_assert_fail((Bool )1, (Char const   *)"!sr_isError(res)",
7989                         (Char const   *)"m_syswrap/syswrap-generic.c", 1502,   7989                         (Char const   *)"m_syswrap/syswrap-generic.c", 1502,
7990                         (Char const   *)"vgModuleLocal_generic_POST_sys_getpeername",   7990                         (Char const   *)"vgModuleLocal_generic_POST_sys_getpeername",
7991                         "");   7991                         "");
7992   }   7992   }
7993   vgModuleLocal_buf_and_len_post_check(tid, res, name_p, namelen_p,   7993   vgModuleLocal_buf_and_len_post_check(tid, res, name_p, namelen_p,
7994                                        (Char *)"socketcall.getpeername(namelen_out)");   7994                                        (Char *)"socketcall.getpeername(namelen_out)");
7995   return;   7995   return;
7996 }   7996 }
7997 }   7997 }
7998 void vgModuleLocal_generic_PRE_sys_sendmsg(ThreadId tid , Char *name ,   7998 void vgModuleLocal_generic_PRE_sys_sendmsg(ThreadId tid , Char *name ,
7999                                            struct vki_msghdr *msg )   7999                                            struct vki_msghdr *msg )
8000 {   8000 {
8001     8001  
8002     8002  
8003   {   8003   {
8004   msghdr_foreachfield(tid, name, msg, (UInt )(~ 0), & pre_mem_read_sendmsg);   8004   msghdr_foreachfield(tid, name, msg, (UInt )(~ 0), & pre_mem_read_sendmsg);
8005   return;   8005   return;
8006 }   8006 }
8007 }   8007 }
8008 void vgModuleLocal_generic_PRE_sys_recvmsg(ThreadId tid , Char *name ,   8008 void vgModuleLocal_generic_PRE_sys_recvmsg(ThreadId tid , Char *name ,
8009                                            struct vki_msghdr *msg )   8009                                            struct vki_msghdr *msg )
8010 {   8010 {
8011     8011  
8012     8012  
8013   {   8013   {
8014   msghdr_foreachfield(tid, name, msg, (UInt )(~ 0), & pre_mem_write_recvmsg);   8014   msghdr_foreachfield(tid, name, msg, (UInt )(~ 0), & pre_mem_write_recvmsg);
8015   return;   8015   return;
8016 }   8016 }
8017 }   8017 }
8018 void vgModuleLocal_generic_POST_sys_recvmsg(ThreadId tid , Char *name ,   8018 void vgModuleLocal_generic_POST_sys_recvmsg(ThreadId tid , Char *name ,
8019                                             struct vki_msghdr *msg ,   8019                                             struct vki_msghdr *msg ,
8020                                             UInt length )   8020                                             UInt length )
8021 {   8021 {
8022     8022  
8023     8023  
8024   {   8024   {
8025   msghdr_foreachfield(tid, name, msg, length, & post_mem_write_recvmsg);   8025   msghdr_foreachfield(tid, name, msg, length, & post_mem_write_recvmsg);
8026   check_cmsg_for_fds(tid, msg);   8026   check_cmsg_for_fds(tid, msg);
8027   return;   8027   return;
8028 }   8028 }
8029 }   8029 }
8030 void vgModuleLocal_generic_PRE_sys_semop(ThreadId tid , UWord arg0 ,   8030 void vgModuleLocal_generic_PRE_sys_semop(ThreadId tid , UWord arg0 ,
8031                                          UWord arg1 , UWord arg2 )   8031                                          UWord arg1 , UWord arg2 )
8032 {   8032 {
8033     8033  
8034     8034  
8035   {   8035   {
8036   while (1) {   8036   while (1) {
8037     if (vgPlain_tdict.track_pre_mem_read) {   8037     if (vgPlain_tdict.track_pre_mem_read) {
8038       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8038       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8039                                             (Char *)"semop(sops)", arg1,   8039                                             (Char *)"semop(sops)", arg1,
8040                                             arg2 * (UWord )sizeof(struct vki_sembuf ));   8040                                             arg2 * (UWord )sizeof(struct vki_sembuf ));
8041     } else {   8041     } else {
8042     8042  
8043     }   8043     }
8044     break;   8044     break;
8045   }   8045   }
8046   return;   8046   return;
8047 }   8047 }
8048 }   8048 }
8049 void vgModuleLocal_generic_PRE_sys_semtimedop(ThreadId tid , UWord arg0 ,   8049 void vgModuleLocal_generic_PRE_sys_semtimedop(ThreadId tid , UWord arg0 ,
8050                                               UWord arg1 , UWord arg2 ,   8050                                               UWord arg1 , UWord arg2 ,
8051                                               UWord arg3 )   8051                                               UWord arg3 )
8052 {   8052 {
8053     8053  
8054     8054  
8055   {   8055   {
8056   while (1) {   8056   while (1) {
8057     if (vgPlain_tdict.track_pre_mem_read) {   8057     if (vgPlain_tdict.track_pre_mem_read) {
8058       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8058       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8059                                             (Char *)"semtimedop(sops)", arg1,   8059                                             (Char *)"semtimedop(sops)", arg1,
8060                                             arg2 * (UWord )sizeof(struct vki_sembuf ));   8060                                             arg2 * (UWord )sizeof(struct vki_sembuf ));
8061     } else {   8061     } else {
8062     8062  
8063     }   8063     }
8064     break;   8064     break;
8065   }   8065   }
8066   if (arg3 != 0UL) {   8066   if (arg3 != 0UL) {
8067     while (1) {   8067     while (1) {
8068       if (vgPlain_tdict.track_pre_mem_read) {   8068       if (vgPlain_tdict.track_pre_mem_read) {
8069         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8069         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8070                                               (Char *)"semtimedop(timeout)",   8070                                               (Char *)"semtimedop(timeout)",
8071                                               arg3,   8071                                               arg3,
8072                                               (SizeT )sizeof(struct vki_timespec ));   8072                                               (SizeT )sizeof(struct vki_timespec ));
8073       } else {   8073       } else {
8074     8074  
8075       }   8075       }
8076       break;   8076       break;
8077     }   8077     }
8078   } else {   8078   } else {
8079     8079  
8080   }   8080   }
8081   return;   8081   return;
8082 }   8082 }
8083 }   8083 }
8084 static UInt get_sem_count(Int semid )   8084 static UInt get_sem_count(Int semid )
8085 {   8085 {
8086   struct vki_semid_ds buf___0 ;   8086   struct vki_semid_ds buf___0 ;
8087   union vki_semun arg ;   8087   union vki_semun arg ;
8088   SysRes res ;   8088   SysRes res ;
8089   Bool tmp ;   8089   Bool tmp ;
8090     8090  
8091   {   8091   {
8092   buf___0.sem_nsems = (unsigned short)0;   8092   buf___0.sem_nsems = (unsigned short)0;
8093   arg.buf = & buf___0;   8093   arg.buf = & buf___0;
8094   res = vgPlain_do_syscall((UWord )117, (UWord )3, (UWord )semid, (UWord )0,   8094   res = vgPlain_do_syscall((UWord )117, (UWord )3, (UWord )semid, (UWord )0,
8095                            (UWord )2, (UWord )(& arg), (UWord )0, (UWord )0,   8095                            (UWord )2, (UWord )(& arg), (UWord )0, (UWord )0,
8096                            (UWord )0);   8096                            (UWord )0);
8097   tmp = sr_isError(res);   8097   tmp = sr_isError(res);
8098   if (tmp) {   8098   if (tmp) {
8099     return ((UInt )0);   8099     return ((UInt )0);
8100   } else {   8100   } else {
8101     8101  
8102   }   8102   }
8103   return ((UInt )buf___0.sem_nsems);   8103   return ((UInt )buf___0.sem_nsems);
8104 }   8104 }
8105 }   8105 }
8106 void vgModuleLocal_generic_PRE_sys_semctl(ThreadId tid , UWord arg0 ,   8106 void vgModuleLocal_generic_PRE_sys_semctl(ThreadId tid , UWord arg0 ,
8107                                           UWord arg1 , UWord arg2 , UWord arg3 )   8107                                           UWord arg1 , UWord arg2 , UWord arg3 )
8108 {   8108 {
8109   union vki_semun arg ;   8109   union vki_semun arg ;
8110   UInt nsems ;   8110   UInt nsems ;
8111     8111  
8112   {   8112   {
8113   arg = *((union vki_semun *)(& arg3));   8113   arg = *((union vki_semun *)(& arg3));
8114   switch (arg2) {   8114   switch (arg2) {
8115   case 275UL:   8115   case 275UL:
8116   case 259UL:   8116   case 259UL:
8117   case 19UL:   8117   case 19UL:
8118   case 3UL:   8118   case 3UL:
8119   while (1) {   8119   while (1) {
8120     if (vgPlain_tdict.track_pre_mem_write) {   8120     if (vgPlain_tdict.track_pre_mem_write) {
8121       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8121       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8122                                              (Char *)"semctl(IPC_INFO, arg.buf)",   8122                                              (Char *)"semctl(IPC_INFO, arg.buf)",
8123                                              (Addr )arg.buf,   8123                                              (Addr )arg.buf,
8124                                              (SizeT )sizeof(struct vki_seminfo ));   8124                                              (SizeT )sizeof(struct vki_seminfo ));
8125     } else {   8125     } else {
8126     8126  
8127     }   8127     }
8128     break;   8128     break;
8129   }   8129   }
8130   break;   8130   break;
8131   case 18UL:   8131   case 18UL:
8132   case 2UL:   8132   case 2UL:
8133   while (1) {   8133   while (1) {
8134     if (vgPlain_tdict.track_pre_mem_write) {   8134     if (vgPlain_tdict.track_pre_mem_write) {
8135       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8135       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8136                                              (Char *)"semctl(IPC_STAT, arg.buf)",   8136                                              (Char *)"semctl(IPC_STAT, arg.buf)",
8137                                              (Addr )arg.buf,   8137                                              (Addr )arg.buf,
8138                                              (SizeT )sizeof(struct vki_semid_ds ));   8138                                              (SizeT )sizeof(struct vki_semid_ds ));
8139     } else {   8139     } else {
8140     8140  
8141     }   8141     }
8142     break;   8142     break;
8143   }   8143   }
8144   break;   8144   break;
8145   case 274UL:   8145   case 274UL:
8146   case 258UL:   8146   case 258UL:
8147   while (1) {   8147   while (1) {
8148     if (vgPlain_tdict.track_pre_mem_write) {   8148     if (vgPlain_tdict.track_pre_mem_write) {
8149       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8149       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8150                                              (Char *)"semctl(IPC_STAT, arg.buf)",   8150                                              (Char *)"semctl(IPC_STAT, arg.buf)",
8151                                              (Addr )arg.buf,   8151                                              (Addr )arg.buf,
8152                                              (SizeT )sizeof(struct vki_semid64_ds ));   8152                                              (SizeT )sizeof(struct vki_semid64_ds ));
8153     } else {   8153     } else {
8154     8154  
8155     }   8155     }
8156     break;   8156     break;
8157   }   8157   }
8158   break;   8158   break;
8159   case 1UL:   8159   case 1UL:
8160   while (1) {   8160   while (1) {
8161     if (vgPlain_tdict.track_pre_mem_read) {   8161     if (vgPlain_tdict.track_pre_mem_read) {
8162       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8162       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8163                                             (Char *)"semctl(IPC_SET, arg.buf)",   8163                                             (Char *)"semctl(IPC_SET, arg.buf)",
8164                                             (Addr )arg.buf,   8164                                             (Addr )arg.buf,
8165                                             (SizeT )sizeof(struct vki_semid_ds ));   8165                                             (SizeT )sizeof(struct vki_semid_ds ));
8166     } else {   8166     } else {
8167     8167  
8168     }   8168     }
8169     break;   8169     break;
8170   }   8170   }
8171   break;   8171   break;
8172   case 257UL:   8172   case 257UL:
8173   while (1) {   8173   while (1) {
8174     if (vgPlain_tdict.track_pre_mem_read) {   8174     if (vgPlain_tdict.track_pre_mem_read) {
8175       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8175       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8176                                             (Char *)"semctl(IPC_SET, arg.buf)",   8176                                             (Char *)"semctl(IPC_SET, arg.buf)",
8177                                             (Addr )arg.buf,   8177                                             (Addr )arg.buf,
8178                                             (SizeT )sizeof(struct vki_semid64_ds ));   8178                                             (SizeT )sizeof(struct vki_semid64_ds ));
8179     } else {   8179     } else {
8180     8180  
8181     }   8181     }
8182     break;   8182     break;
8183   }   8183   }
8184   break;   8184   break;
8185   case 269UL:   8185   case 269UL:
8186   case 13UL:   8186   case 13UL:
8187   nsems = get_sem_count((Int )arg0);   8187   nsems = get_sem_count((Int )arg0);
8188   while (1) {   8188   while (1) {
8189     if (vgPlain_tdict.track_pre_mem_write) {   8189     if (vgPlain_tdict.track_pre_mem_write) {
8190       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8190       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8191                                              (Char *)"semctl(IPC_GETALL, arg.array)",   8191                                              (Char *)"semctl(IPC_GETALL, arg.array)",
8192                                              (Addr )arg.array,   8192                                              (Addr )arg.array,
8193                                              (SizeT )(sizeof(unsigned short ) * nsems));   8193                                              (SizeT )(sizeof(unsigned short ) * nsems));
8194     } else {   8194     } else {
8195     8195  
8196     }   8196     }
8197     break;   8197     break;
8198   }   8198   }
8199   break;   8199   break;
8200   case 273UL:   8200   case 273UL:
8201   case 17UL:   8201   case 17UL:
8202   nsems = get_sem_count((Int )arg0);   8202   nsems = get_sem_count((Int )arg0);
8203   while (1) {   8203   while (1) {
8204     if (vgPlain_tdict.track_pre_mem_read) {   8204     if (vgPlain_tdict.track_pre_mem_read) {
8205       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8205       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8206                                             (Char *)"semctl(IPC_SETALL, arg.array)",   8206                                             (Char *)"semctl(IPC_SETALL, arg.array)",
8207                                             (Addr )arg.array,   8207                                             (Addr )arg.array,
8208                                             (SizeT )(sizeof(unsigned short ) * nsems));   8208                                             (SizeT )(sizeof(unsigned short ) * nsems));
8209     } else {   8209     } else {
8210     8210  
8211     }   8211     }
8212     break;   8212     break;
8213   }   8213   }
8214   break;   8214   break;
8215   }   8215   }
8216   return;   8216   return;
8217 }   8217 }
8218 }   8218 }
8219 void vgModuleLocal_generic_POST_sys_semctl(ThreadId tid , UWord res ,   8219 void vgModuleLocal_generic_POST_sys_semctl(ThreadId tid , UWord res ,
8220                                            UWord arg0 , UWord arg1 ,   8220                                            UWord arg0 , UWord arg1 ,
8221                                            UWord arg2 , UWord arg3 )   8221                                            UWord arg2 , UWord arg3 )
8222 {   8222 {
8223   union vki_semun arg ;   8223   union vki_semun arg ;
8224   UInt nsems ;   8224   UInt nsems ;
8225     8225  
8226   {   8226   {
8227   arg = *((union vki_semun *)(& arg3));   8227   arg = *((union vki_semun *)(& arg3));
8228   switch (arg2) {   8228   switch (arg2) {
8229   case 275UL:   8229   case 275UL:
8230   case 259UL:   8230   case 259UL:
8231   case 19UL:   8231   case 19UL:
8232   case 3UL:   8232   case 3UL:
8233   while (1) {   8233   while (1) {
8234     if (vgPlain_tdict.track_post_mem_write) {   8234     if (vgPlain_tdict.track_post_mem_write) {
8235       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, (Addr )arg.buf,   8235       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, (Addr )arg.buf,
8236                                               (SizeT )sizeof(struct vki_seminfo ));   8236                                               (SizeT )sizeof(struct vki_seminfo ));
8237     } else {   8237     } else {
8238     8238  
8239     }   8239     }
8240     break;   8240     break;
8241   }   8241   }
8242   break;   8242   break;
8243   case 18UL:   8243   case 18UL:
8244   case 2UL:   8244   case 2UL:
8245   while (1) {   8245   while (1) {
8246     if (vgPlain_tdict.track_post_mem_write) {   8246     if (vgPlain_tdict.track_post_mem_write) {
8247       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, (Addr )arg.buf,   8247       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, (Addr )arg.buf,
8248                                               (SizeT )sizeof(struct vki_semid_ds ));   8248                                               (SizeT )sizeof(struct vki_semid_ds ));
8249     } else {   8249     } else {
8250     8250  
8251     }   8251     }
8252     break;   8252     break;
8253   }   8253   }
8254   break;   8254   break;
8255   case 274UL:   8255   case 274UL:
8256   case 258UL:   8256   case 258UL:
8257   while (1) {   8257   while (1) {
8258     if (vgPlain_tdict.track_post_mem_write) {   8258     if (vgPlain_tdict.track_post_mem_write) {
8259       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, (Addr )arg.buf,   8259       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, (Addr )arg.buf,
8260                                               (SizeT )sizeof(struct vki_semid64_ds ));   8260                                               (SizeT )sizeof(struct vki_semid64_ds ));
8261     } else {   8261     } else {
8262     8262  
8263     }   8263     }
8264     break;   8264     break;
8265   }   8265   }
8266   break;   8266   break;
8267   case 269UL:   8267   case 269UL:
8268   case 13UL:   8268   case 13UL:
8269   nsems = get_sem_count((Int )arg0);   8269   nsems = get_sem_count((Int )arg0);
8270   while (1) {   8270   while (1) {
8271     if (vgPlain_tdict.track_post_mem_write) {   8271     if (vgPlain_tdict.track_post_mem_write) {
8272       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   8272       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
8273                                               (Addr )arg.array,   8273                                               (Addr )arg.array,
8274                                               (SizeT )(sizeof(unsigned short ) * nsems));   8274                                               (SizeT )(sizeof(unsigned short ) * nsems));
8275     } else {   8275     } else {
8276     8276  
8277     }   8277     }
8278     break;   8278     break;
8279   }   8279   }
8280   break;   8280   break;
8281   }   8281   }
8282   return;   8282   return;
8283 }   8283 }
8284 }   8284 }
8285 static UInt get_shm_size(Int shmid )   8285 static UInt get_shm_size(Int shmid )
8286 {   8286 {
8287   struct vki_shmid_ds buf___0 ;   8287   struct vki_shmid_ds buf___0 ;
8288   SysRes __res ;   8288   SysRes __res ;
8289   SysRes tmp ;   8289   SysRes tmp ;
8290   Bool tmp___0 ;   8290   Bool tmp___0 ;
8291     8291  
8292   {   8292   {
8293   tmp = vgPlain_do_syscall((UWord )117, (UWord )24, (UWord )shmid, (UWord )2,   8293   tmp = vgPlain_do_syscall((UWord )117, (UWord )24, (UWord )shmid, (UWord )2,
8294                            (UWord )0, (UWord )(& buf___0), (UWord )0, (UWord )0,   8294                            (UWord )0, (UWord )(& buf___0), (UWord )0, (UWord )0,
8295                            (UWord )0);   8295                            (UWord )0);
8296   __res = tmp;   8296   __res = tmp;
8297   tmp___0 = sr_isError(__res);   8297   tmp___0 = sr_isError(__res);
8298   if (tmp___0) {   8298   if (tmp___0) {
8299     return ((UInt )0);   8299     return ((UInt )0);
8300   } else {   8300   } else {
8301     8301  
8302   }   8302   }
8303   return ((UInt )buf___0.shm_segsz);   8303   return ((UInt )buf___0.shm_segsz);
8304 }   8304 }
8305 }   8305 }
8306 UWord vgModuleLocal_generic_PRE_sys_shmat(ThreadId tid , UWord arg0 ,   8306 UWord vgModuleLocal_generic_PRE_sys_shmat(ThreadId tid , UWord arg0 ,
8307                                           UWord arg1 , UWord arg2 )   8307                                           UWord arg1 , UWord arg2 )
8308 {   8308 {
8309   UInt segmentSize ;   8309   UInt segmentSize ;
8310   UInt tmp ;   8310   UInt tmp ;
8311   UWord tmp___0 ;   8311   UWord tmp___0 ;
8312   Bool ok ;   8312   Bool ok ;
8313   long tmp___1 ;   8313   long tmp___1 ;
8314   Bool tmp___2 ;   8314   Bool tmp___2 ;
8315     8315  
8316   {   8316   {
8317   tmp = get_shm_size((Int )arg0);   8317   tmp = get_shm_size((Int )arg0);
8318   segmentSize = tmp;   8318   segmentSize = tmp;
8319   if (arg1 == 0UL) {   8319   if (arg1 == 0UL) {
8320     tmp___1 = __builtin_expect((long )(! (! (1UL << 12 >= 1UL << 12))), 1L);   8320     tmp___1 = __builtin_expect((long )(! (! (1UL << 12 >= 1UL << 12))), 1L);
8321     if (tmp___1) {   8321     if (tmp___1) {
8322     8322  
8323     } else {   8323     } else {
8324       vgPlain_assert_fail((Bool )1,   8324       vgPlain_assert_fail((Bool )1,
8325                           (Char const   *)"VKI_SHMLBA >= VKI_PAGE_SIZE",   8325                           (Char const   *)"VKI_SHMLBA >= VKI_PAGE_SIZE",
8326                           (Char const   *)"m_syswrap/syswrap-generic.c", 1748,   8326                           (Char const   *)"m_syswrap/syswrap-generic.c", 1748,
8327                           (Char const   *)"vgModuleLocal_generic_PRE_sys_shmat",   8327                           (Char const   *)"vgModuleLocal_generic_PRE_sys_shmat",
8328                           "");   8328                           "");
8329     }   8329     }
8330     if (1UL << 12 > 1UL << 12) {   8330     if (1UL << 12 > 1UL << 12) {
8331       segmentSize = (UInt )((unsigned long )segmentSize + ((1UL << 12) - (1UL << 12)));   8331       segmentSize = (UInt )((unsigned long )segmentSize + ((1UL << 12) - (1UL << 12)));
8332     } else {   8332     } else {
8333     8333  
8334     }   8334     }
8335     tmp___0 = vgPlain_am_get_advisory_client_simple((Addr )0,   8335     tmp___0 = vgPlain_am_get_advisory_client_simple((Addr )0,
8336                                                     (SizeT )segmentSize, & ok);   8336                                                     (SizeT )segmentSize, & ok);
8337     if (ok) {   8337     if (ok) {
8338       if (1UL << 12 > 1UL << 12) {   8338       if (1UL << 12 > 1UL << 12) {
8339         arg1 = ((tmp___0 + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);   8339         arg1 = ((tmp___0 + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL);
8340       } else {   8340       } else {
8341         arg1 = tmp___0;   8341         arg1 = tmp___0;
8342       }   8342       }
8343     } else {   8343     } else {
8344     8344  
8345     }   8345     }
8346   } else {   8346   } else {
8347     tmp___2 = vgModuleLocal_valid_client_addr(arg1, (SizeT )segmentSize, tid,   8347     tmp___2 = vgModuleLocal_valid_client_addr(arg1, (SizeT )segmentSize, tid,
8348                                               (Char const   *)"shmat");   8348                                               (Char const   *)"shmat");
8349     if (tmp___2) {   8349     if (tmp___2) {
8350     8350  
8351     } else {   8351     } else {
8352       arg1 = (UWord )0;   8352       arg1 = (UWord )0;
8353     }   8353     }
8354   }   8354   }
8355   return (arg1);   8355   return (arg1);
8356 }   8356 }
8357 }   8357 }
8358 void vgModuleLocal_generic_POST_sys_shmat(ThreadId tid , UWord res ,   8358 void vgModuleLocal_generic_POST_sys_shmat(ThreadId tid , UWord res ,
8359                                           UWord arg0 , UWord arg1 , UWord arg2 )   8359                                           UWord arg0 , UWord arg1 , UWord arg2 )
8360 {   8360 {
8361   UInt segmentSize ;   8361   UInt segmentSize ;
8362   UInt tmp ;   8362   UInt tmp ;
8363   UInt prot ;   8363   UInt prot ;
8364   Bool d ;   8364   Bool d ;
8365     8365  
8366   {   8366   {
8367   tmp = get_shm_size((Int )arg0);   8367   tmp = get_shm_size((Int )arg0);
8368   segmentSize = (UInt )((((unsigned long )tmp + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL));   8368   segmentSize = (UInt )((((unsigned long )tmp + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL));
8369   if (segmentSize > 0U) {   8369   if (segmentSize > 0U) {
8370     prot = (UInt )3;   8370     prot = (UInt )3;
8371     if (arg2 & 4096UL) {   8371     if (arg2 & 4096UL) {
8372       prot &= 4294967293U;   8372       prot &= 4294967293U;
8373     } else {   8373     } else {
8374     8374  
8375     }   8375     }
8376     d = vgPlain_am_notify_client_shmat(res, (SizeT )segmentSize, prot);   8376     d = vgPlain_am_notify_client_shmat(res, (SizeT )segmentSize, prot);
8377     while (1) {   8377     while (1) {
8378       if (vgPlain_tdict.track_new_mem_mmap) {   8378       if (vgPlain_tdict.track_new_mem_mmap) {
8379         (*(vgPlain_tdict.track_new_mem_mmap))(res, (SizeT )segmentSize,   8379         (*(vgPlain_tdict.track_new_mem_mmap))(res, (SizeT )segmentSize,
8380                                               (Bool )1, (Bool )1, (Bool )0,   8380                                               (Bool )1, (Bool )1, (Bool )0,
8381                                               (ULong )0);   8381                                               (ULong )0);
8382       } else {   8382       } else {
8383     8383  
8384       }   8384       }
8385       break;   8385       break;
8386     }   8386     }
8387     if (d) {   8387     if (d) {
8388       vgPlain_discard_translations((Addr64 )res,   8388       vgPlain_discard_translations((Addr64 )res,
8389                                    (ULong )((((unsigned long )segmentSize + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)),   8389                                    (ULong )((((unsigned long )segmentSize + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)),
8390                                    (HChar *)"ML_(generic_POST_sys_shmat)");   8390                                    (HChar *)"ML_(generic_POST_sys_shmat)");
8391     } else {   8391     } else {
8392     8392  
8393     }   8393     }
8394   } else {   8394   } else {
8395     8395  
8396   }   8396   }
8397   return;   8397   return;
8398 }   8398 }
8399 }   8399 }
8400 Bool vgModuleLocal_generic_PRE_sys_shmdt(ThreadId tid , UWord arg0 )   8400 Bool vgModuleLocal_generic_PRE_sys_shmdt(ThreadId tid , UWord arg0 )
8401 {   8401 {
8402   Bool tmp ;   8402   Bool tmp ;
8403     8403  
8404   {   8404   {
8405   tmp = vgModuleLocal_valid_client_addr(arg0, (SizeT )1, tid,   8405   tmp = vgModuleLocal_valid_client_addr(arg0, (SizeT )1, tid,
8406                                         (Char const   *)"shmdt");   8406                                         (Char const   *)"shmdt");
8407   return (tmp);   8407   return (tmp);
8408 }   8408 }
8409 }   8409 }
8410 void vgModuleLocal_generic_POST_sys_shmdt(ThreadId tid , UWord res , UWord arg0 )   8410 void vgModuleLocal_generic_POST_sys_shmdt(ThreadId tid , UWord res , UWord arg0 )
8411 {   8411 {
8412   NSegment const   *s ;   8412   NSegment const   *s ;
8413   NSegment const   *tmp ;   8413   NSegment const   *tmp ;
8414   Addr s_start ;   8414   Addr s_start ;
8415   SizeT s_len ;   8415   SizeT s_len ;
8416   Bool d ;   8416   Bool d ;
8417   long tmp___0 ;   8417   long tmp___0 ;
8418   long tmp___1 ;   8418   long tmp___1 ;
8419     8419  
8420   {   8420   {
8421   tmp = vgPlain_am_find_nsegment(arg0);   8421   tmp = vgPlain_am_find_nsegment(arg0);
8422   s = tmp;   8422   s = tmp;
8423   if ((unsigned int )s != (unsigned int )((void *)0)) {   8423   if ((unsigned int )s != (unsigned int )((void *)0)) {
8424     s_start = (Addr )s->start;   8424     s_start = (Addr )s->start;
8425     s_len = (SizeT )((s->end + 1UL) - s->start);   8425     s_len = (SizeT )((s->end + 1UL) - s->start);
8426     tmp___0 = __builtin_expect((long )(! (! ((unsigned int const   )s->kind == 5U))),   8426     tmp___0 = __builtin_expect((long )(! (! ((unsigned int const   )s->kind == 5U))),
8427                                1L);   8427                                1L);
8428     if (tmp___0) {   8428     if (tmp___0) {
8429     8429  
8430     } else {   8430     } else {
8431       vgPlain_assert_fail((Bool )1, (Char const   *)"s->kind == SkShmC",   8431       vgPlain_assert_fail((Bool )1, (Char const   *)"s->kind == SkShmC",
8432                           (Char const   *)"m_syswrap/syswrap-generic.c", 1820,   8432                           (Char const   *)"m_syswrap/syswrap-generic.c", 1820,
8433                           (Char const   *)"vgModuleLocal_generic_POST_sys_shmdt",   8433                           (Char const   *)"vgModuleLocal_generic_POST_sys_shmdt",
8434                           "");   8434                           "");
8435     }   8435     }
8436     tmp___1 = __builtin_expect((long )(! (! (s->start == (Addr const   )arg0))),   8436     tmp___1 = __builtin_expect((long )(! (! (s->start == (Addr const   )arg0))),
8437                                1L);   8437                                1L);
8438     if (tmp___1) {   8438     if (tmp___1) {
8439     8439  
8440     } else {   8440     } else {
8441       vgPlain_assert_fail((Bool )1, (Char const   *)"s->start == arg0",   8441       vgPlain_assert_fail((Bool )1, (Char const   *)"s->start == arg0",
8442                           (Char const   *)"m_syswrap/syswrap-generic.c", 1821,   8442                           (Char const   *)"m_syswrap/syswrap-generic.c", 1821,
8443                           (Char const   *)"vgModuleLocal_generic_POST_sys_shmdt",   8443                           (Char const   *)"vgModuleLocal_generic_POST_sys_shmdt",
8444                           "");   8444                           "");
8445     }   8445     }
8446     d = vgPlain_am_notify_munmap(s_start, s_len);   8446     d = vgPlain_am_notify_munmap(s_start, s_len);
8447     s = (NSegment const   *)((void *)0);   8447     s = (NSegment const   *)((void *)0);
8448     while (1) {   8448     while (1) {
8449       if (vgPlain_tdict.track_die_mem_munmap) {   8449       if (vgPlain_tdict.track_die_mem_munmap) {
8450         (*(vgPlain_tdict.track_die_mem_munmap))(s_start, s_len);   8450         (*(vgPlain_tdict.track_die_mem_munmap))(s_start, s_len);
8451       } else {   8451       } else {
8452     8452  
8453       }   8453       }
8454       break;   8454       break;
8455     }   8455     }
8456     if (d) {   8456     if (d) {
8457       vgPlain_discard_translations((Addr64 )s_start, (ULong )s_len,   8457       vgPlain_discard_translations((Addr64 )s_start, (ULong )s_len,
8458                                    (HChar *)"ML_(generic_POST_sys_shmdt)");   8458                                    (HChar *)"ML_(generic_POST_sys_shmdt)");
8459     } else {   8459     } else {
8460     8460  
8461     }   8461     }
8462   } else {   8462   } else {
8463     8463  
8464   }   8464   }
8465   return;   8465   return;
8466 }   8466 }
8467 }   8467 }
8468 void vgModuleLocal_generic_PRE_sys_shmctl(ThreadId tid , UWord arg0 ,   8468 void vgModuleLocal_generic_PRE_sys_shmctl(ThreadId tid , UWord arg0 ,
8469                                           UWord arg1 , UWord arg2 )   8469                                           UWord arg1 , UWord arg2 )
8470 {   8470 {
8471     8471  
8472     8472  
8473   {   8473   {
8474   switch (arg1) {   8474   switch (arg1) {
8475   case 3UL:   8475   case 3UL:
8476   while (1) {   8476   while (1) {
8477     if (vgPlain_tdict.track_pre_mem_write) {   8477     if (vgPlain_tdict.track_pre_mem_write) {
8478       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8478       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8479                                              (Char *)"shmctl(IPC_INFO, buf)",   8479                                              (Char *)"shmctl(IPC_INFO, buf)",
8480                                              arg2,   8480                                              arg2,
8481                                              (SizeT )sizeof(struct vki_shminfo ));   8481                                              (SizeT )sizeof(struct vki_shminfo ));
8482     } else {   8482     } else {
8483     8483  
8484     }   8484     }
8485     break;   8485     break;
8486   }   8486   }
8487   break;   8487   break;
8488   case 259UL:   8488   case 259UL:
8489   while (1) {   8489   while (1) {
8490     if (vgPlain_tdict.track_pre_mem_write) {   8490     if (vgPlain_tdict.track_pre_mem_write) {
8491       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8491       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8492                                              (Char *)"shmctl(IPC_INFO, buf)",   8492                                              (Char *)"shmctl(IPC_INFO, buf)",
8493                                              arg2,   8493                                              arg2,
8494                                              (SizeT )sizeof(struct vki_shminfo64 ));   8494                                              (SizeT )sizeof(struct vki_shminfo64 ));
8495     } else {   8495     } else {
8496     8496  
8497     }   8497     }
8498     break;   8498     break;
8499   }   8499   }
8500   break;   8500   break;
8501   case 270UL:   8501   case 270UL:
8502   case 14UL:   8502   case 14UL:
8503   while (1) {   8503   while (1) {
8504     if (vgPlain_tdict.track_pre_mem_write) {   8504     if (vgPlain_tdict.track_pre_mem_write) {
8505       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8505       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8506                                              (Char *)"shmctl(SHM_INFO, buf)",   8506                                              (Char *)"shmctl(SHM_INFO, buf)",
8507                                              arg2,   8507                                              arg2,
8508                                              (SizeT )sizeof(struct vki_shm_info ));   8508                                              (SizeT )sizeof(struct vki_shm_info ));
8509     } else {   8509     } else {
8510     8510  
8511     }   8511     }
8512     break;   8512     break;
8513   }   8513   }
8514   break;   8514   break;
8515   case 13UL:   8515   case 13UL:
8516   case 2UL:   8516   case 2UL:
8517   while (1) {   8517   while (1) {
8518     if (vgPlain_tdict.track_pre_mem_write) {   8518     if (vgPlain_tdict.track_pre_mem_write) {
8519       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8519       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8520                                              (Char *)"shmctl(IPC_STAT, buf)",   8520                                              (Char *)"shmctl(IPC_STAT, buf)",
8521                                              arg2,   8521                                              arg2,
8522                                              (SizeT )sizeof(struct vki_shmid_ds ));   8522                                              (SizeT )sizeof(struct vki_shmid_ds ));
8523     } else {   8523     } else {
8524     8524  
8525     }   8525     }
8526     break;   8526     break;
8527   }   8527   }
8528   break;   8528   break;
8529   case 269UL:   8529   case 269UL:
8530   case 258UL:   8530   case 258UL:
8531   while (1) {   8531   while (1) {
8532     if (vgPlain_tdict.track_pre_mem_write) {   8532     if (vgPlain_tdict.track_pre_mem_write) {
8533       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   8533       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
8534                                              (Char *)"shmctl(IPC_STAT, arg.buf)",   8534                                              (Char *)"shmctl(IPC_STAT, arg.buf)",
8535                                              arg2,   8535                                              arg2,
8536                                              (SizeT )sizeof(struct vki_shmid64_ds ));   8536                                              (SizeT )sizeof(struct vki_shmid64_ds ));
8537     } else {   8537     } else {
8538     8538  
8539     }   8539     }
8540     break;   8540     break;
8541   }   8541   }
8542   break;   8542   break;
8543   case 1UL:   8543   case 1UL:
8544   while (1) {   8544   while (1) {
8545     if (vgPlain_tdict.track_pre_mem_read) {   8545     if (vgPlain_tdict.track_pre_mem_read) {
8546       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8546       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8547                                             (Char *)"shmctl(IPC_SET, arg.buf)",   8547                                             (Char *)"shmctl(IPC_SET, arg.buf)",
8548                                             arg2,   8548                                             arg2,
8549                                             (SizeT )sizeof(struct vki_shmid_ds ));   8549                                             (SizeT )sizeof(struct vki_shmid_ds ));
8550     } else {   8550     } else {
8551     8551  
8552     }   8552     }
8553     break;   8553     break;
8554   }   8554   }
8555   break;   8555   break;
8556   case 257UL:   8556   case 257UL:
8557   while (1) {   8557   while (1) {
8558     if (vgPlain_tdict.track_pre_mem_read) {   8558     if (vgPlain_tdict.track_pre_mem_read) {
8559       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   8559       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
8560                                             (Char *)"shmctl(IPC_SET, arg.buf)",   8560                                             (Char *)"shmctl(IPC_SET, arg.buf)",
8561                                             arg2,   8561                                             arg2,
8562                                             (SizeT )sizeof(struct vki_shmid64_ds ));   8562                                             (SizeT )sizeof(struct vki_shmid64_ds ));
8563     } else {   8563     } else {
8564     8564  
8565     }   8565     }
8566     break;   8566     break;
8567   }   8567   }
8568   break;   8568   break;
8569   }   8569   }
8570   return;   8570   return;
8571 }   8571 }
8572 }   8572 }
8573 void vgModuleLocal_generic_POST_sys_shmctl(ThreadId tid , UWord res ,   8573 void vgModuleLocal_generic_POST_sys_shmctl(ThreadId tid , UWord res ,
8574                                            UWord arg0 , UWord arg1 , UWord arg2 )   8574                                            UWord arg0 , UWord arg1 , UWord arg2 )
8575 {   8575 {
8576     8576  
8577     8577  
8578   {   8578   {
8579   switch (arg1) {   8579   switch (arg1) {
8580   case 3UL:   8580   case 3UL:
8581   while (1) {   8581   while (1) {
8582     if (vgPlain_tdict.track_post_mem_write) {   8582     if (vgPlain_tdict.track_post_mem_write) {
8583       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,   8583       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,
8584                                               (SizeT )sizeof(struct vki_shminfo ));   8584                                               (SizeT )sizeof(struct vki_shminfo ));
8585     } else {   8585     } else {
8586     8586  
8587     }   8587     }
8588     break;   8588     break;
8589   }   8589   }
8590   break;   8590   break;
8591   case 259UL:   8591   case 259UL:
8592   while (1) {   8592   while (1) {
8593     if (vgPlain_tdict.track_post_mem_write) {   8593     if (vgPlain_tdict.track_post_mem_write) {
8594       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,   8594       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,
8595                                               (SizeT )sizeof(struct vki_shminfo64 ));   8595                                               (SizeT )sizeof(struct vki_shminfo64 ));
8596     } else {   8596     } else {
8597     8597  
8598     }   8598     }
8599     break;   8599     break;
8600   }   8600   }
8601   break;   8601   break;
8602   case 270UL:   8602   case 270UL:
8603   case 14UL:   8603   case 14UL:
8604   while (1) {   8604   while (1) {
8605     if (vgPlain_tdict.track_post_mem_write) {   8605     if (vgPlain_tdict.track_post_mem_write) {
8606       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,   8606       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,
8607                                               (SizeT )sizeof(struct vki_shm_info ));   8607                                               (SizeT )sizeof(struct vki_shm_info ));
8608     } else {   8608     } else {
8609     8609  
8610     }   8610     }
8611     break;   8611     break;
8612   }   8612   }
8613   break;   8613   break;
8614   case 13UL:   8614   case 13UL:
8615   case 2UL:   8615   case 2UL:
8616   while (1) {   8616   while (1) {
8617     if (vgPlain_tdict.track_post_mem_write) {   8617     if (vgPlain_tdict.track_post_mem_write) {
8618       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,   8618       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,
8619                                               (SizeT )sizeof(struct vki_shmid_ds ));   8619                                               (SizeT )sizeof(struct vki_shmid_ds ));
8620     } else {   8620     } else {
8621     8621  
8622     }   8622     }
8623     break;   8623     break;
8624   }   8624   }
8625   break;   8625   break;
8626   case 269UL:   8626   case 269UL:
8627   case 258UL:   8627   case 258UL:
8628   while (1) {   8628   while (1) {
8629     if (vgPlain_tdict.track_post_mem_write) {   8629     if (vgPlain_tdict.track_post_mem_write) {
8630       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,   8630       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg2,
8631                                               (SizeT )sizeof(struct vki_shmid64_ds ));   8631                                               (SizeT )sizeof(struct vki_shmid64_ds ));
8632     } else {   8632     } else {
8633     8633  
8634     }   8634     }
8635     break;   8635     break;
8636   }   8636   }
8637   break;   8637   break;
8638   }   8638   }
8639   return;   8639   return;
8640 }   8640 }
8641 }   8641 }
8642 SysRes vgModuleLocal_generic_PRE_sys_mmap(ThreadId tid , UWord arg1 ,   8642 SysRes vgModuleLocal_generic_PRE_sys_mmap(ThreadId tid , UWord arg1 ,
8643                                           UWord arg2 , UWord arg3 , UWord arg4 ,   8643                                           UWord arg2 , UWord arg3 , UWord arg4 ,
8644                                           UWord arg5 , Off64T arg6 )   8644                                           UWord arg5 , Off64T arg6 )
8645 {   8645 {
8646   Addr advised ;   8646   Addr advised ;
8647   SysRes sres ;   8647   SysRes sres ;
8648   MapRequest mreq ;   8648   MapRequest mreq ;
8649   Bool mreq_ok ;   8649   Bool mreq_ok ;
8650   SysRes tmp ;   8650   SysRes tmp ;
8651   SysRes tmp___0 ;   8651   SysRes tmp___0 ;
8652   SysRes tmp___1 ;   8652   SysRes tmp___1 ;
8653   SysRes tmp___2 ;   8653   SysRes tmp___2 ;
8654   SysRes tmp___3 ;   8654   SysRes tmp___3 ;
8655   Bool tmp___4 ;   8655   Bool tmp___4 ;
8656   ULong di_handle ;   8656   ULong di_handle ;
8657   UWord tmp___5 ;   8657   UWord tmp___5 ;
8658   UWord tmp___6 ;   8658   UWord tmp___6 ;
8659   UWord tmp___7 ;   8659   UWord tmp___7 ;
8660   Bool tmp___8 ;   8660   Bool tmp___8 ;
8661   UWord tmp___9 ;   8661   UWord tmp___9 ;
8662   int tmp___10 ;   8662   int tmp___10 ;
8663   long tmp___11 ;   8663   long tmp___11 ;
8664   Bool tmp___12 ;   8664   Bool tmp___12 ;
8665     8665  
8666   {   8666   {
8667   if (arg2 == 0UL) {   8667   if (arg2 == 0UL) {
8668     tmp = vgPlain_mk_SysRes_Error((UWord )22);   8668     tmp = vgPlain_mk_SysRes_Error((UWord )22);
8669     return (tmp);   8669     return (tmp);
8670   } else {   8670   } else {
8671     8671  
8672   }   8672   }
8673   if (! (0UL == (arg1 & ((1UL << 12) - 1UL)))) {   8673   if (! (0UL == (arg1 & ((1UL << 12) - 1UL)))) {
8674     tmp___0 = vgPlain_mk_SysRes_Error((UWord )22);   8674     tmp___0 = vgPlain_mk_SysRes_Error((UWord )22);
8675     return (tmp___0);   8675     return (tmp___0);
8676   } else {   8676   } else {
8677     8677  
8678   }   8678   }
8679   if (! (0UL == ((Addr )arg6 & ((1UL << 12) - 1UL)))) {   8679   if (! (0UL == ((Addr )arg6 & ((1UL << 12) - 1UL)))) {
8680     tmp___1 = vgPlain_mk_SysRes_Error((UWord )22);   8680     tmp___1 = vgPlain_mk_SysRes_Error((UWord )22);
8681     return (tmp___1);   8681     return (tmp___1);
8682   } else {   8682   } else {
8683     8683  
8684   }   8684   }
8685   mreq.start = arg1;   8685   mreq.start = arg1;
8686   mreq.len = arg2;   8686   mreq.len = arg2;
8687   if (arg4 & 16UL) {   8687   if (arg4 & 16UL) {
8688     mreq.rkind = (enum __anonenum_rkind_116 )0;   8688     mreq.rkind = (enum __anonenum_rkind_116 )0;
8689   } else   8689   } else
8690   if (arg1 != 0UL) {   8690   if (arg1 != 0UL) {
8691     mreq.rkind = (enum __anonenum_rkind_116 )1;   8691     mreq.rkind = (enum __anonenum_rkind_116 )1;
8692   } else {   8692   } else {
8693     mreq.rkind = (enum __anonenum_rkind_116 )2;   8693     mreq.rkind = (enum __anonenum_rkind_116 )2;
8694   }   8694   }
8695   advised = vgPlain_am_get_advisory(& mreq, (Bool )1, & mreq_ok);   8695   advised = vgPlain_am_get_advisory(& mreq, (Bool )1, & mreq_ok);
8696   if (! mreq_ok) {   8696   if (! mreq_ok) {
8697     tmp___2 = vgPlain_mk_SysRes_Error((UWord )22);   8697     tmp___2 = vgPlain_mk_SysRes_Error((UWord )22);
8698     return (tmp___2);   8698     return (tmp___2);
8699   } else {   8699   } else {
8700     8700  
8701   }   8701   }
8702   sres = vgPlain_am_do_mmap_NO_NOTIFY(advised, arg2, (UInt )arg3,   8702   sres = vgPlain_am_do_mmap_NO_NOTIFY(advised, arg2, (UInt )arg3,
8703                                       (UInt )(arg4 | 16UL), (Int )arg5, arg6);   8703                                       (UInt )(arg4 | 16UL), (Int )arg5, arg6);
8704   if ((unsigned int )mreq.rkind == 1U) {   8704   if ((unsigned int )mreq.rkind == 1U) {
8705     tmp___4 = sr_isError(sres);   8705     tmp___4 = sr_isError(sres);
8706     if (tmp___4) {   8706     if (tmp___4) {
8707       mreq.start = (Addr )0;   8707       mreq.start = (Addr )0;
8708       mreq.len = arg2;   8708       mreq.len = arg2;
8709       mreq.rkind = (enum __anonenum_rkind_116 )2;   8709       mreq.rkind = (enum __anonenum_rkind_116 )2;
8710       advised = vgPlain_am_get_advisory(& mreq, (Bool )1, & mreq_ok);   8710       advised = vgPlain_am_get_advisory(& mreq, (Bool )1, & mreq_ok);
8711       if (! mreq_ok) {   8711       if (! mreq_ok) {
8712         tmp___3 = vgPlain_mk_SysRes_Error((UWord )22);   8712         tmp___3 = vgPlain_mk_SysRes_Error((UWord )22);
8713         return (tmp___3);   8713         return (tmp___3);
8714       } else {   8714       } else {
8715     8715  
8716       }   8716       }
8717       sres = vgPlain_am_do_mmap_NO_NOTIFY(advised, arg2, (UInt )arg3,   8717       sres = vgPlain_am_do_mmap_NO_NOTIFY(advised, arg2, (UInt )arg3,
8718                                           (UInt )(arg4 | 16UL), (Int )arg5, arg6);   8718                                           (UInt )(arg4 | 16UL), (Int )arg5, arg6);
8719     } else {   8719     } else {
8720     8720  
8721     }   8721     }
8722   } else {   8722   } else {
8723     8723  
8724   }   8724   }
8725   tmp___8 = sr_isError(sres);   8725   tmp___8 = sr_isError(sres);
8726   if (tmp___8) {   8726   if (tmp___8) {
8727     8727  
8728   } else {   8728   } else {
8729     tmp___5 = sr_Res(sres);   8729     tmp___5 = sr_Res(sres);
8730     notify_core_of_mmap(tmp___5, arg2, (UInt )arg3, (UInt )arg4, (Int )arg5,   8730     notify_core_of_mmap(tmp___5, arg2, (UInt )arg3, (UInt )arg4, (Int )arg5,
8731                         arg6);   8731                         arg6);
8732     tmp___6 = sr_Res(sres);   8732     tmp___6 = sr_Res(sres);
8733     di_handle = vgPlain_di_notify_mmap(tmp___6, (Bool )0, (Int )arg5);   8733     di_handle = vgPlain_di_notify_mmap(tmp___6, (Bool )0, (Int )arg5);
8734     tmp___7 = sr_Res(sres);   8734     tmp___7 = sr_Res(sres);
8735     notify_tool_of_mmap(tmp___7, arg2, (UInt )arg3, di_handle);   8735     notify_tool_of_mmap(tmp___7, arg2, (UInt )arg3, di_handle);
8736   }   8736   }
8737   tmp___12 = sr_isError(sres);   8737   tmp___12 = sr_isError(sres);
8738   if (tmp___12) {   8738   if (tmp___12) {
8739     8739  
8740   } else   8740   } else
8741   if (arg4 & 16UL) {   8741   if (arg4 & 16UL) {
8742     tmp___9 = sr_Res(sres);   8742     tmp___9 = sr_Res(sres);
8743     if (tmp___9 == arg1) {   8743     if (tmp___9 == arg1) {
8744       tmp___10 = 1;   8744       tmp___10 = 1;
8745     } else {   8745     } else {
8746       tmp___10 = 0;   8746       tmp___10 = 0;
8747     }   8747     }
8748     tmp___11 = __builtin_expect((long )tmp___10, 1L);   8748     tmp___11 = __builtin_expect((long )tmp___10, 1L);
8749     if (tmp___11) {   8749     if (tmp___11) {
8750     8750  
8751     } else {   8751     } else {
8752       vgPlain_assert_fail((Bool )1, (Char const   *)"sr_Res(sres) == arg1",   8752       vgPlain_assert_fail((Bool )1, (Char const   *)"sr_Res(sres) == arg1",
8753                           (Char const   *)"m_syswrap/syswrap-generic.c", 2080,   8753                           (Char const   *)"m_syswrap/syswrap-generic.c", 2080,
8754                           (Char const   *)"vgModuleLocal_generic_PRE_sys_mmap",   8754                           (Char const   *)"vgModuleLocal_generic_PRE_sys_mmap",
8755                           "");   8755                           "");
8756     }   8756     }
8757   } else {   8757   } else {
8758     8758  
8759   }   8759   }
8760   return (sres);   8760   return (sres);
8761 }   8761 }
8762 }   8762 }
8763 void vgSysWrap_generic_sys_exit_before(ThreadId tid , SyscallArgLayout *layout ,   8763 void vgSysWrap_generic_sys_exit_before(ThreadId tid , SyscallArgLayout *layout ,
8764                                        SyscallArgs *arrghs ,   8764                                        SyscallArgs *arrghs ,
8765                                        SyscallStatus *status , UWord *flags )   8765                                        SyscallStatus *status , UWord *flags )
8766 {   8766 {
8767   ThreadState *tst ;   8767   ThreadState *tst ;
8768   Int here ;   8768   Int here ;
8769   long tmp ;   8769   long tmp ;
8770   long tmp___0 ;   8770   long tmp___0 ;
8771     8771  
8772   {   8772   {
8773   if (vgPlain_clo_trace_syscalls) {   8773   if (vgPlain_clo_trace_syscalls) {
8774     vgPlain_printf("exit( %ld )", arrghs->arg1);   8774     vgPlain_printf("exit( %ld )", arrghs->arg1);
8775   } else {   8775   } else {
8776     8776  
8777   }   8777   }
8778   if (vgPlain_tdict.track_pre_reg_read) {   8778   if (vgPlain_tdict.track_pre_reg_read) {
8779     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   8779     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
8780                                           (Char *)"(syscallno)",   8780                                           (Char *)"(syscallno)",
8781                                           (PtrdiffT )layout->o_sysno,   8781                                           (PtrdiffT )layout->o_sysno,
8782                                           (SizeT )sizeof(UWord ));   8782                                           (SizeT )sizeof(UWord ));
8783     while (1) {   8783     while (1) {
8784       here = layout->o_arg1;   8784       here = layout->o_arg1;
8785       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   8785       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
8786       if (tmp) {   8786       if (tmp) {
8787     8787  
8788       } else {   8788       } else {
8789         vgPlain_assert_fail((Bool )1,   8789         vgPlain_assert_fail((Bool )1,
8790                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   8790                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
8791                             (Char const   *)"m_syswrap/syswrap-generic.c", 2141,   8791                             (Char const   *)"m_syswrap/syswrap-generic.c", 2141,
8792                             (Char const   *)"vgSysWrap_generic_sys_exit_before",   8792                             (Char const   *)"vgSysWrap_generic_sys_exit_before",
8793                             "");   8793                             "");
8794       }   8794       }
8795       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   8795       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
8796       if (tmp___0) {   8796       if (tmp___0) {
8797     8797  
8798       } else {   8798       } else {
8799         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   8799         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
8800                             (Char const   *)"m_syswrap/syswrap-generic.c", 2141,   8800                             (Char const   *)"m_syswrap/syswrap-generic.c", 2141,
8801                             (Char const   *)"vgSysWrap_generic_sys_exit_before",   8801                             (Char const   *)"vgSysWrap_generic_sys_exit_before",
8802                             "");   8802                             "");
8803       }   8803       }
8804       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   8804       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
8805                                             (Char *)"exit(status)",   8805                                             (Char *)"exit(status)",
8806                                             (PtrdiffT )here,   8806                                             (PtrdiffT )here,
8807                                             (SizeT )sizeof(int ));   8807                                             (SizeT )sizeof(int ));
8808       break;   8808       break;
8809     }   8809     }
8810   } else {   8810   } else {
8811     8811  
8812   }   8812   }
8813   tst = vgPlain_get_ThreadState(tid);   8813   tst = vgPlain_get_ThreadState(tid);
8814   tst->exitreason = (VgSchedReturnCode )1;   8814   tst->exitreason = (VgSchedReturnCode )1;
8815   tst->os_state.exitcode = (Word )arrghs->arg1;   8815   tst->os_state.exitcode = (Word )arrghs->arg1;
8816   while (1) {   8816   while (1) {
8817     status->what = (enum __anonenum_what_133 )1;   8817     status->what = (enum __anonenum_what_133 )1;
8818     status->sres = vgPlain_mk_SysRes_Success((UWord )0);   8818     status->sres = vgPlain_mk_SysRes_Success((UWord )0);
8819     break;   8819     break;
8820   }   8820   }
8821   return;   8821   return;
8822 }   8822 }
8823 }   8823 }
8824 void vgSysWrap_generic_sys_ni_syscall_before(ThreadId tid ,   8824 void vgSysWrap_generic_sys_ni_syscall_before(ThreadId tid ,
8825                                              SyscallArgLayout *layout ,   8825                                              SyscallArgLayout *layout ,
8826                                              SyscallArgs *arrghs ,   8826                                              SyscallArgs *arrghs ,
8827                                              SyscallStatus *status ,   8827                                              SyscallStatus *status ,
8828                                              UWord *flags )   8828                                              UWord *flags )
8829 {   8829 {
8830   Char qq_zz_buf[32] ;   8830   Char qq_zz_buf[32] ;
8831   Char *tmp ;   8831   Char *tmp ;
8832   Word wzz ;   8832   Word wzz ;
8833   int tmp___0 ;   8833   int tmp___0 ;
8834   long tmp___1 ;   8834   long tmp___1 ;
8835     8835  
8836   {   8836   {
8837   if (vgPlain_clo_trace_syscalls) {   8837   if (vgPlain_clo_trace_syscalls) {
8838     tmp = vgPlain_sysnum_string(arrghs->sysno, (SizeT )32, qq_zz_buf);   8838     tmp = vgPlain_sysnum_string(arrghs->sysno, (SizeT )32, qq_zz_buf);
8839     vgPlain_printf("unimplemented (by the kernel) syscall: %s! (ni_syscall)\n",   8839     vgPlain_printf("unimplemented (by the kernel) syscall: %s! (ni_syscall)\n",
8840                    tmp);   8840                    tmp);
8841   } else {   8841   } else {
8842     8842  
8843   }   8843   }
8844   if (vgPlain_tdict.track_pre_reg_read) {   8844   if (vgPlain_tdict.track_pre_reg_read) {
8845     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   8845     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
8846                                           (Char *)"(syscallno)",   8846                                           (Char *)"(syscallno)",
8847                                           (PtrdiffT )layout->o_sysno,   8847                                           (PtrdiffT )layout->o_sysno,
8848                                           (SizeT )sizeof(UWord ));   8848                                           (SizeT )sizeof(UWord ));
8849   } else {   8849   } else {
8850     8850  
8851   }   8851   }
8852   while (1) {   8852   while (1) {
8853     wzz = (Word )38;   8853     wzz = (Word )38;
8854     if (wzz >= 0L) {   8854     if (wzz >= 0L) {
8855       if (wzz < 10000L) {   8855       if (wzz < 10000L) {
8856         tmp___0 = 1;   8856         tmp___0 = 1;
8857       } else {   8857       } else {
8858         tmp___0 = 0;   8858         tmp___0 = 0;
8859       }   8859       }
8860     } else {   8860     } else {
8861       tmp___0 = 0;   8861       tmp___0 = 0;
8862     }   8862     }
8863     tmp___1 = __builtin_expect((long )tmp___0, 1L);   8863     tmp___1 = __builtin_expect((long )tmp___0, 1L);
8864     if (tmp___1) {   8864     if (tmp___1) {
8865     8865  
8866     } else {   8866     } else {
8867       vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   8867       vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
8868                           (Char const   *)"m_syswrap/syswrap-generic.c", 2155,   8868                           (Char const   *)"m_syswrap/syswrap-generic.c", 2155,
8869                           (Char const   *)"vgSysWrap_generic_sys_ni_syscall_before",   8869                           (Char const   *)"vgSysWrap_generic_sys_ni_syscall_before",
8870                           "");   8870                           "");
8871     }   8871     }
8872     status->what = (enum __anonenum_what_133 )1;   8872     status->what = (enum __anonenum_what_133 )1;
8873     status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   8873     status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
8874     break;   8874     break;
8875   }   8875   }
8876   return;   8876   return;
8877 }   8877 }
8878 }   8878 }
8879 void vgSysWrap_generic_sys_iopl_before(ThreadId tid , SyscallArgLayout *layout ,   8879 void vgSysWrap_generic_sys_iopl_before(ThreadId tid , SyscallArgLayout *layout ,
8880                                        SyscallArgs *arrghs ,   8880                                        SyscallArgs *arrghs ,
8881                                        SyscallStatus *status , UWord *flags )   8881                                        SyscallStatus *status , UWord *flags )
8882 {   8882 {
8883   Int here ;   8883   Int here ;
8884   long tmp ;   8884   long tmp ;
8885   long tmp___0 ;   8885   long tmp___0 ;
8886     8886  
8887   {   8887   {
8888   if (vgPlain_clo_trace_syscalls) {   8888   if (vgPlain_clo_trace_syscalls) {
8889     vgPlain_printf("sys_iopl ( %ld )", arrghs->arg1);   8889     vgPlain_printf("sys_iopl ( %ld )", arrghs->arg1);
8890   } else {   8890   } else {
8891     8891  
8892   }   8892   }
8893   if (vgPlain_tdict.track_pre_reg_read) {   8893   if (vgPlain_tdict.track_pre_reg_read) {
8894     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   8894     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
8895                                           (Char *)"(syscallno)",   8895                                           (Char *)"(syscallno)",
8896                                           (PtrdiffT )layout->o_sysno,   8896                                           (PtrdiffT )layout->o_sysno,
8897                                           (SizeT )sizeof(UWord ));   8897                                           (SizeT )sizeof(UWord ));
8898     while (1) {   8898     while (1) {
8899       here = layout->o_arg1;   8899       here = layout->o_arg1;
8900       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   8900       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
8901                              1L);   8901                              1L);
8902       if (tmp) {   8902       if (tmp) {
8903     8903  
8904       } else {   8904       } else {
8905         vgPlain_assert_fail((Bool )1,   8905         vgPlain_assert_fail((Bool )1,
8906                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   8906                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
8907                             (Char const   *)"m_syswrap/syswrap-generic.c", 2161,   8907                             (Char const   *)"m_syswrap/syswrap-generic.c", 2161,
8908                             (Char const   *)"vgSysWrap_generic_sys_iopl_before",   8908                             (Char const   *)"vgSysWrap_generic_sys_iopl_before",
8909                             "");   8909                             "");
8910       }   8910       }
8911       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   8911       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
8912       if (tmp___0) {   8912       if (tmp___0) {
8913     8913  
8914       } else {   8914       } else {
8915         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   8915         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
8916                             (Char const   *)"m_syswrap/syswrap-generic.c", 2161,   8916                             (Char const   *)"m_syswrap/syswrap-generic.c", 2161,
8917                             (Char const   *)"vgSysWrap_generic_sys_iopl_before",   8917                             (Char const   *)"vgSysWrap_generic_sys_iopl_before",
8918                             "");   8918                             "");
8919       }   8919       }
8920       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   8920       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
8921                                             (Char *)"iopl(level)",   8921                                             (Char *)"iopl(level)",
8922                                             (PtrdiffT )here,   8922                                             (PtrdiffT )here,
8923                                             (SizeT )sizeof(unsigned long ));   8923                                             (SizeT )sizeof(unsigned long ));
8924       break;   8924       break;
8925     }   8925     }
8926   } else {   8926   } else {
8927     8927  
8928   }   8928   }
8929   return;   8929   return;
8930 }   8930 }
8931 }   8931 }
8932 void vgSysWrap_generic_sys_fsync_before(ThreadId tid ,   8932 void vgSysWrap_generic_sys_fsync_before(ThreadId tid ,
8933                                         SyscallArgLayout *layout ,   8933                                         SyscallArgLayout *layout ,
8934                                         SyscallArgs *arrghs ,   8934                                         SyscallArgs *arrghs ,
8935                                         SyscallStatus *status , UWord *flags )   8935                                         SyscallStatus *status , UWord *flags )
8936 {   8936 {
8937   Int here ;   8937   Int here ;
8938   long tmp ;   8938   long tmp ;
8939   long tmp___0 ;   8939   long tmp___0 ;
8940     8940  
8941   {   8941   {
8942   *flags |= (unsigned long )(1 << 1);   8942   *flags |= (unsigned long )(1 << 1);
8943   if (vgPlain_clo_trace_syscalls) {   8943   if (vgPlain_clo_trace_syscalls) {
8944     vgPlain_printf("sys_fsync ( %ld )", arrghs->arg1);   8944     vgPlain_printf("sys_fsync ( %ld )", arrghs->arg1);
8945   } else {   8945   } else {
8946     8946  
8947   }   8947   }
8948   if (vgPlain_tdict.track_pre_reg_read) {   8948   if (vgPlain_tdict.track_pre_reg_read) {
8949     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   8949     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
8950                                           (Char *)"(syscallno)",   8950                                           (Char *)"(syscallno)",
8951                                           (PtrdiffT )layout->o_sysno,   8951                                           (PtrdiffT )layout->o_sysno,
8952                                           (SizeT )sizeof(UWord ));   8952                                           (SizeT )sizeof(UWord ));
8953     while (1) {   8953     while (1) {
8954       here = layout->o_arg1;   8954       here = layout->o_arg1;
8955       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   8955       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
8956                              1L);   8956                              1L);
8957       if (tmp) {   8957       if (tmp) {
8958     8958  
8959       } else {   8959       } else {
8960         vgPlain_assert_fail((Bool )1,   8960         vgPlain_assert_fail((Bool )1,
8961                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   8961                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
8962                             (Char const   *)"m_syswrap/syswrap-generic.c", 2168,   8962                             (Char const   *)"m_syswrap/syswrap-generic.c", 2168,
8963                             (Char const   *)"vgSysWrap_generic_sys_fsync_before",   8963                             (Char const   *)"vgSysWrap_generic_sys_fsync_before",
8964                             "");   8964                             "");
8965       }   8965       }
8966       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   8966       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
8967       if (tmp___0) {   8967       if (tmp___0) {
8968     8968  
8969       } else {   8969       } else {
8970         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   8970         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
8971                             (Char const   *)"m_syswrap/syswrap-generic.c", 2168,   8971                             (Char const   *)"m_syswrap/syswrap-generic.c", 2168,
8972                             (Char const   *)"vgSysWrap_generic_sys_fsync_before",   8972                             (Char const   *)"vgSysWrap_generic_sys_fsync_before",
8973                             "");   8973                             "");
8974       }   8974       }
8975       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   8975       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
8976                                             (Char *)"fsync(fd)",   8976                                             (Char *)"fsync(fd)",
8977                                             (PtrdiffT )here,   8977                                             (PtrdiffT )here,
8978                                             (SizeT )sizeof(unsigned int ));   8978                                             (SizeT )sizeof(unsigned int ));
8979       break;   8979       break;
8980     }   8980     }
8981   } else {   8981   } else {
8982     8982  
8983   }   8983   }
8984   return;   8984   return;
8985 }   8985 }
8986 }   8986 }
8987 void vgSysWrap_generic_sys_fdatasync_before(ThreadId tid ,   8987 void vgSysWrap_generic_sys_fdatasync_before(ThreadId tid ,
8988                                             SyscallArgLayout *layout ,   8988                                             SyscallArgLayout *layout ,
8989                                             SyscallArgs *arrghs ,   8989                                             SyscallArgs *arrghs ,
8990                                             SyscallStatus *status ,   8990                                             SyscallStatus *status ,
8991                                             UWord *flags )   8991                                             UWord *flags )
8992 {   8992 {
8993   Int here ;   8993   Int here ;
8994   long tmp ;   8994   long tmp ;
8995   long tmp___0 ;   8995   long tmp___0 ;
8996     8996  
8997   {   8997   {
8998   *flags |= (unsigned long )(1 << 1);   8998   *flags |= (unsigned long )(1 << 1);
8999   if (vgPlain_clo_trace_syscalls) {   8999   if (vgPlain_clo_trace_syscalls) {
9000     vgPlain_printf("sys_fdatasync ( %ld )", arrghs->arg1);   9000     vgPlain_printf("sys_fdatasync ( %ld )", arrghs->arg1);
9001   } else {   9001   } else {
9002     9002  
9003   }   9003   }
9004   if (vgPlain_tdict.track_pre_reg_read) {   9004   if (vgPlain_tdict.track_pre_reg_read) {
9005     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9005     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9006                                           (Char *)"(syscallno)",   9006                                           (Char *)"(syscallno)",
9007                                           (PtrdiffT )layout->o_sysno,   9007                                           (PtrdiffT )layout->o_sysno,
9008                                           (SizeT )sizeof(UWord ));   9008                                           (SizeT )sizeof(UWord ));
9009     while (1) {   9009     while (1) {
9010       here = layout->o_arg1;   9010       here = layout->o_arg1;
9011       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   9011       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
9012                              1L);   9012                              1L);
9013       if (tmp) {   9013       if (tmp) {
9014     9014  
9015       } else {   9015       } else {
9016         vgPlain_assert_fail((Bool )1,   9016         vgPlain_assert_fail((Bool )1,
9017                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   9017                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
9018                             (Char const   *)"m_syswrap/syswrap-generic.c", 2175,   9018                             (Char const   *)"m_syswrap/syswrap-generic.c", 2175,
9019                             (Char const   *)"vgSysWrap_generic_sys_fdatasync_before",   9019                             (Char const   *)"vgSysWrap_generic_sys_fdatasync_before",
9020                             "");   9020                             "");
9021       }   9021       }
9022       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   9022       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
9023       if (tmp___0) {   9023       if (tmp___0) {
9024     9024  
9025       } else {   9025       } else {
9026         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9026         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9027                             (Char const   *)"m_syswrap/syswrap-generic.c", 2175,   9027                             (Char const   *)"m_syswrap/syswrap-generic.c", 2175,
9028                             (Char const   *)"vgSysWrap_generic_sys_fdatasync_before",   9028                             (Char const   *)"vgSysWrap_generic_sys_fdatasync_before",
9029                             "");   9029                             "");
9030       }   9030       }
9031       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9031       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9032                                             (Char *)"fdatasync(fd)",   9032                                             (Char *)"fdatasync(fd)",
9033                                             (PtrdiffT )here,   9033                                             (PtrdiffT )here,
9034                                             (SizeT )sizeof(unsigned int ));   9034                                             (SizeT )sizeof(unsigned int ));
9035       break;   9035       break;
9036     }   9036     }
9037   } else {   9037   } else {
9038     9038  
9039   }   9039   }
9040   return;   9040   return;
9041 }   9041 }
9042 }   9042 }
9043 void vgSysWrap_generic_sys_msync_before(ThreadId tid ,   9043 void vgSysWrap_generic_sys_msync_before(ThreadId tid ,
9044                                         SyscallArgLayout *layout ,   9044                                         SyscallArgLayout *layout ,
9045                                         SyscallArgs *arrghs ,   9045                                         SyscallArgs *arrghs ,
9046                                         SyscallStatus *status , UWord *flags )   9046                                         SyscallStatus *status , UWord *flags )
9047 {   9047 {
9048   Int here ;   9048   Int here ;
9049   long tmp ;   9049   long tmp ;
9050   long tmp___0 ;   9050   long tmp___0 ;
9051   Int here___0 ;   9051   Int here___0 ;
9052   long tmp___1 ;   9052   long tmp___1 ;
9053   long tmp___2 ;   9053   long tmp___2 ;
9054   Int here___1 ;   9054   Int here___1 ;
9055   long tmp___3 ;   9055   long tmp___3 ;
9056   long tmp___4 ;   9056   long tmp___4 ;
9057     9057  
9058   {   9058   {
9059   *flags |= (unsigned long )(1 << 1);   9059   *flags |= (unsigned long )(1 << 1);
9060   if (vgPlain_clo_trace_syscalls) {   9060   if (vgPlain_clo_trace_syscalls) {
9061     vgPlain_printf("sys_msync ( %#lx, %llu, %ld )", arrghs->arg1,   9061     vgPlain_printf("sys_msync ( %#lx, %llu, %ld )", arrghs->arg1,
9062                    (ULong )arrghs->arg2, arrghs->arg3);   9062                    (ULong )arrghs->arg2, arrghs->arg3);
9063   } else {   9063   } else {
9064     9064  
9065   }   9065   }
9066   if (vgPlain_tdict.track_pre_reg_read) {   9066   if (vgPlain_tdict.track_pre_reg_read) {
9067     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9067     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9068                                           (Char *)"(syscallno)",   9068                                           (Char *)"(syscallno)",
9069                                           (PtrdiffT )layout->o_sysno,   9069                                           (PtrdiffT )layout->o_sysno,
9070                                           (SizeT )sizeof(UWord ));   9070                                           (SizeT )sizeof(UWord ));
9071     while (1) {   9071     while (1) {
9072       here = layout->o_arg1;   9072       here = layout->o_arg1;
9073       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   9073       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
9074                              1L);   9074                              1L);
9075       if (tmp) {   9075       if (tmp) {
9076     9076  
9077       } else {   9077       } else {
9078         vgPlain_assert_fail((Bool )1,   9078         vgPlain_assert_fail((Bool )1,
9079                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   9079                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
9080                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,   9080                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,
9081                             (Char const   *)"vgSysWrap_generic_sys_msync_before",   9081                             (Char const   *)"vgSysWrap_generic_sys_msync_before",
9082                             "");   9082                             "");
9083       }   9083       }
9084       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   9084       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
9085       if (tmp___0) {   9085       if (tmp___0) {
9086     9086  
9087       } else {   9087       } else {
9088         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9088         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9089                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,   9089                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,
9090                             (Char const   *)"vgSysWrap_generic_sys_msync_before",   9090                             (Char const   *)"vgSysWrap_generic_sys_msync_before",
9091                             "");   9091                             "");
9092       }   9092       }
9093       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9093       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9094                                             (Char *)"msync(start)",   9094                                             (Char *)"msync(start)",
9095                                             (PtrdiffT )here,   9095                                             (PtrdiffT )here,
9096                                             (SizeT )sizeof(unsigned long ));   9096                                             (SizeT )sizeof(unsigned long ));
9097       break;   9097       break;
9098     }   9098     }
9099     while (1) {   9099     while (1) {
9100       here___0 = layout->o_arg2;   9100       here___0 = layout->o_arg2;
9101       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   9101       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
9102                                  1L);   9102                                  1L);
9103       if (tmp___1) {   9103       if (tmp___1) {
9104     9104  
9105       } else {   9105       } else {
9106         vgPlain_assert_fail((Bool )1,   9106         vgPlain_assert_fail((Bool )1,
9107                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   9107                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
9108                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,   9108                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,
9109                             (Char const   *)"vgSysWrap_generic_sys_msync_before",   9109                             (Char const   *)"vgSysWrap_generic_sys_msync_before",
9110                             "");   9110                             "");
9111       }   9111       }
9112       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   9112       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
9113       if (tmp___2) {   9113       if (tmp___2) {
9114     9114  
9115       } else {   9115       } else {
9116         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9116         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9117                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,   9117                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,
9118                             (Char const   *)"vgSysWrap_generic_sys_msync_before",   9118                             (Char const   *)"vgSysWrap_generic_sys_msync_before",
9119                             "");   9119                             "");
9120       }   9120       }
9121       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9121       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9122                                             (Char *)"msync(length)",   9122                                             (Char *)"msync(length)",
9123                                             (PtrdiffT )here___0,   9123                                             (PtrdiffT )here___0,
9124                                             (SizeT )sizeof(vki_size_t ));   9124                                             (SizeT )sizeof(vki_size_t ));
9125       break;   9125       break;
9126     }   9126     }
9127     while (1) {   9127     while (1) {
9128       here___1 = layout->o_arg3;   9128       here___1 = layout->o_arg3;
9129       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   9129       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
9130                                  1L);   9130                                  1L);
9131       if (tmp___3) {   9131       if (tmp___3) {
9132     9132  
9133       } else {   9133       } else {
9134         vgPlain_assert_fail((Bool )1,   9134         vgPlain_assert_fail((Bool )1,
9135                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   9135                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
9136                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,   9136                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,
9137                             (Char const   *)"vgSysWrap_generic_sys_msync_before",   9137                             (Char const   *)"vgSysWrap_generic_sys_msync_before",
9138                             "");   9138                             "");
9139       }   9139       }
9140       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   9140       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
9141       if (tmp___4) {   9141       if (tmp___4) {
9142     9142  
9143       } else {   9143       } else {
9144         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9144         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9145                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,   9145                             (Char const   *)"m_syswrap/syswrap-generic.c", 2183,
9146                             (Char const   *)"vgSysWrap_generic_sys_msync_before",   9146                             (Char const   *)"vgSysWrap_generic_sys_msync_before",
9147                             "");   9147                             "");
9148       }   9148       }
9149       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9149       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9150                                             (Char *)"msync(flags)",   9150                                             (Char *)"msync(flags)",
9151                                             (PtrdiffT )here___1,   9151                                             (PtrdiffT )here___1,
9152                                             (SizeT )sizeof(int ));   9152                                             (SizeT )sizeof(int ));
9153       break;   9153       break;
9154     }   9154     }
9155   } else {   9155   } else {
9156     9156  
9157   }   9157   }
9158   while (1) {   9158   while (1) {
9159     if (vgPlain_tdict.track_pre_mem_read) {   9159     if (vgPlain_tdict.track_pre_mem_read) {
9160       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   9160       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
9161                                             (Char *)"msync(start)",   9161                                             (Char *)"msync(start)",
9162                                             arrghs->arg1, arrghs->arg2);   9162                                             arrghs->arg1, arrghs->arg2);
9163     } else {   9163     } else {
9164     9164  
9165     }   9165     }
9166     break;   9166     break;
9167   }   9167   }
9168   return;   9168   return;
9169 }   9169 }
9170 }   9170 }
9171 void vgSysWrap_generic_sys_getpmsg_before(ThreadId tid ,   9171 void vgSysWrap_generic_sys_getpmsg_before(ThreadId tid ,
9172                                           SyscallArgLayout *layout ,   9172                                           SyscallArgLayout *layout ,
9173                                           SyscallArgs *arrghs ,   9173                                           SyscallArgs *arrghs ,
9174                                           SyscallStatus *status , UWord *flags )   9174                                           SyscallStatus *status , UWord *flags )
9175 {   9175 {
9176   struct vki_pmsg_strbuf *ctrl ;   9176   struct vki_pmsg_strbuf *ctrl ;
9177   struct vki_pmsg_strbuf *data ;   9177   struct vki_pmsg_strbuf *data ;
9178   Int here ;   9178   Int here ;
9179   long tmp ;   9179   long tmp ;
9180   long tmp___0 ;   9180   long tmp___0 ;
9181   Int here___0 ;   9181   Int here___0 ;
9182   long tmp___1 ;   9182   long tmp___1 ;
9183   long tmp___2 ;   9183   long tmp___2 ;
9184   Int here___1 ;   9184   Int here___1 ;
9185   long tmp___3 ;   9185   long tmp___3 ;
9186   long tmp___4 ;   9186   long tmp___4 ;
9187   Int here___2 ;   9187   Int here___2 ;
9188   long tmp___5 ;   9188   long tmp___5 ;
9189   long tmp___6 ;   9189   long tmp___6 ;
9190   Int here___3 ;   9190   Int here___3 ;
9191   long tmp___7 ;   9191   long tmp___7 ;
9192   long tmp___8 ;   9192   long tmp___8 ;
9193     9193  
9194   {   9194   {
9195   *flags |= (unsigned long )(1 << 1);   9195   *flags |= (unsigned long )(1 << 1);
9196   if (vgPlain_clo_trace_syscalls) {   9196   if (vgPlain_clo_trace_syscalls) {
9197     vgPlain_printf("sys_getpmsg ( %ld, %#lx, %#lx, %#lx, %#lx )", arrghs->arg1,   9197     vgPlain_printf("sys_getpmsg ( %ld, %#lx, %#lx, %#lx, %#lx )", arrghs->arg1,
9198                    arrghs->arg2, arrghs->arg3, arrghs->arg4, arrghs->arg5);   9198                    arrghs->arg2, arrghs->arg3, arrghs->arg4, arrghs->arg5);
9199   } else {   9199   } else {
9200     9200  
9201   }   9201   }
9202   if (vgPlain_tdict.track_pre_reg_read) {   9202   if (vgPlain_tdict.track_pre_reg_read) {
9203     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9203     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9204                                           (Char *)"(syscallno)",   9204                                           (Char *)"(syscallno)",
9205                                           (PtrdiffT )layout->o_sysno,   9205                                           (PtrdiffT )layout->o_sysno,
9206                                           (SizeT )sizeof(UWord ));   9206                                           (SizeT )sizeof(UWord ));
9207     while (1) {   9207     while (1) {
9208       here = layout->o_arg1;   9208       here = layout->o_arg1;
9209       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   9209       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
9210       if (tmp) {   9210       if (tmp) {
9211     9211  
9212       } else {   9212       } else {
9213         vgPlain_assert_fail((Bool )1,   9213         vgPlain_assert_fail((Bool )1,
9214                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   9214                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
9215                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9215                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9216                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9216                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9217                             "");   9217                             "");
9218       }   9218       }
9219       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   9219       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
9220       if (tmp___0) {   9220       if (tmp___0) {
9221     9221  
9222       } else {   9222       } else {
9223         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9223         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9224                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9224                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9225                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9225                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9226                             "");   9226                             "");
9227       }   9227       }
9228       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9228       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9229                                             (Char *)"getpmsg(fd)",   9229                                             (Char *)"getpmsg(fd)",
9230                                             (PtrdiffT )here,   9230                                             (PtrdiffT )here,
9231                                             (SizeT )sizeof(int ));   9231                                             (SizeT )sizeof(int ));
9232       break;   9232       break;
9233     }   9233     }
9234     while (1) {   9234     while (1) {
9235       here___0 = layout->o_arg2;   9235       here___0 = layout->o_arg2;
9236       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),   9236       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),
9237                                  1L);   9237                                  1L);
9238       if (tmp___1) {   9238       if (tmp___1) {
9239     9239  
9240       } else {   9240       } else {
9241         vgPlain_assert_fail((Bool )1,   9241         vgPlain_assert_fail((Bool )1,
9242                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",   9242                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",
9243                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9243                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9244                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9244                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9245                             "");   9245                             "");
9246       }   9246       }
9247       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   9247       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
9248       if (tmp___2) {   9248       if (tmp___2) {
9249     9249  
9250       } else {   9250       } else {
9251         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9251         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9252                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9252                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9253                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9253                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9254                             "");   9254                             "");
9255       }   9255       }
9256       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9256       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9257                                             (Char *)"getpmsg(ctrl)",   9257                                             (Char *)"getpmsg(ctrl)",
9258                                             (PtrdiffT )here___0,   9258                                             (PtrdiffT )here___0,
9259                                             (SizeT )sizeof(struct strbuf *));   9259                                             (SizeT )sizeof(struct strbuf *));
9260       break;   9260       break;
9261     }   9261     }
9262     while (1) {   9262     while (1) {
9263       here___1 = layout->o_arg3;   9263       here___1 = layout->o_arg3;
9264       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),   9264       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),
9265                                  1L);   9265                                  1L);
9266       if (tmp___3) {   9266       if (tmp___3) {
9267     9267  
9268       } else {   9268       } else {
9269         vgPlain_assert_fail((Bool )1,   9269         vgPlain_assert_fail((Bool )1,
9270                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",   9270                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",
9271                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9271                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9272                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9272                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9273                             "");   9273                             "");
9274       }   9274       }
9275       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   9275       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
9276       if (tmp___4) {   9276       if (tmp___4) {
9277     9277  
9278       } else {   9278       } else {
9279         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9279         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9280                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9280                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9281                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9281                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9282                             "");   9282                             "");
9283       }   9283       }
9284       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9284       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9285                                             (Char *)"getpmsg(data)",   9285                                             (Char *)"getpmsg(data)",
9286                                             (PtrdiffT )here___1,   9286                                             (PtrdiffT )here___1,
9287                                             (SizeT )sizeof(struct strbuf *));   9287                                             (SizeT )sizeof(struct strbuf *));
9288       break;   9288       break;
9289     }   9289     }
9290     while (1) {   9290     while (1) {
9291       here___2 = layout->o_arg4;   9291       here___2 = layout->o_arg4;
9292       tmp___5 = __builtin_expect((long )(! (! (sizeof(int *) <= sizeof(UWord )))),   9292       tmp___5 = __builtin_expect((long )(! (! (sizeof(int *) <= sizeof(UWord )))),
9293                                  1L);   9293                                  1L);
9294       if (tmp___5) {   9294       if (tmp___5) {
9295     9295  
9296       } else {   9296       } else {
9297         vgPlain_assert_fail((Bool )1,   9297         vgPlain_assert_fail((Bool )1,
9298                             (Char const   *)"sizeof(int *) <= sizeof(UWord)",   9298                             (Char const   *)"sizeof(int *) <= sizeof(UWord)",
9299                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9299                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9300                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9300                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9301                             "");   9301                             "");
9302       }   9302       }
9303       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   9303       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
9304       if (tmp___6) {   9304       if (tmp___6) {
9305     9305  
9306       } else {   9306       } else {
9307         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9307         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9308                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9308                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9309                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9309                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9310                             "");   9310                             "");
9311       }   9311       }
9312       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9312       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9313                                             (Char *)"getpmsg(bandp)",   9313                                             (Char *)"getpmsg(bandp)",
9314                                             (PtrdiffT )here___2,   9314                                             (PtrdiffT )here___2,
9315                                             (SizeT )sizeof(int *));   9315                                             (SizeT )sizeof(int *));
9316       break;   9316       break;
9317     }   9317     }
9318     while (1) {   9318     while (1) {
9319       here___3 = layout->o_arg5;   9319       here___3 = layout->o_arg5;
9320       tmp___7 = __builtin_expect((long )(! (! (sizeof(int *) <= sizeof(UWord )))),   9320       tmp___7 = __builtin_expect((long )(! (! (sizeof(int *) <= sizeof(UWord )))),
9321                                  1L);   9321                                  1L);
9322       if (tmp___7) {   9322       if (tmp___7) {
9323     9323  
9324       } else {   9324       } else {
9325         vgPlain_assert_fail((Bool )1,   9325         vgPlain_assert_fail((Bool )1,
9326                             (Char const   *)"sizeof(int *) <= sizeof(UWord)",   9326                             (Char const   *)"sizeof(int *) <= sizeof(UWord)",
9327                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9327                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9328                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9328                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9329                             "");   9329                             "");
9330       }   9330       }
9331       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);   9331       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);
9332       if (tmp___8) {   9332       if (tmp___8) {
9333     9333  
9334       } else {   9334       } else {
9335         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9335         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9336                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,   9336                             (Char const   *)"m_syswrap/syswrap-generic.c", 2205,
9337                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",   9337                             (Char const   *)"vgSysWrap_generic_sys_getpmsg_before",
9338                             "");   9338                             "");
9339       }   9339       }
9340       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9340       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9341                                             (Char *)"getpmsg(flagsp)",   9341                                             (Char *)"getpmsg(flagsp)",
9342                                             (PtrdiffT )here___3,   9342                                             (PtrdiffT )here___3,
9343                                             (SizeT )sizeof(int *));   9343                                             (SizeT )sizeof(int *));
9344       break;   9344       break;
9345     }   9345     }
9346   } else {   9346   } else {
9347     9347  
9348   }   9348   }
9349   ctrl = (struct vki_pmsg_strbuf *)arrghs->arg2;   9349   ctrl = (struct vki_pmsg_strbuf *)arrghs->arg2;
9350   data = (struct vki_pmsg_strbuf *)arrghs->arg3;   9350   data = (struct vki_pmsg_strbuf *)arrghs->arg3;
9351   if (ctrl) {   9351   if (ctrl) {
9352     if (ctrl->maxlen > 0) {   9352     if (ctrl->maxlen > 0) {
9353       while (1) {   9353       while (1) {
9354         if (vgPlain_tdict.track_pre_mem_write) {   9354         if (vgPlain_tdict.track_pre_mem_write) {
9355           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9355           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9356                                                  (Char *)"getpmsg(ctrl)",   9356                                                  (Char *)"getpmsg(ctrl)",
9357                                                  (Addr )ctrl->buf,   9357                                                  (Addr )ctrl->buf,
9358                                                  (SizeT )ctrl->maxlen);   9358                                                  (SizeT )ctrl->maxlen);
9359         } else {   9359         } else {
9360     9360  
9361         }   9361         }
9362         break;   9362         break;
9363       }   9363       }
9364     } else {   9364     } else {
9365     9365  
9366     }   9366     }
9367   } else {   9367   } else {
9368     9368  
9369   }   9369   }
9370   if (data) {   9370   if (data) {
9371     if (data->maxlen > 0) {   9371     if (data->maxlen > 0) {
9372       while (1) {   9372       while (1) {
9373         if (vgPlain_tdict.track_pre_mem_write) {   9373         if (vgPlain_tdict.track_pre_mem_write) {
9374           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9374           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9375                                                  (Char *)"getpmsg(data)",   9375                                                  (Char *)"getpmsg(data)",
9376                                                  (Addr )data->buf,   9376                                                  (Addr )data->buf,
9377                                                  (SizeT )data->maxlen);   9377                                                  (SizeT )data->maxlen);
9378         } else {   9378         } else {
9379     9379  
9380         }   9380         }
9381         break;   9381         break;
9382       }   9382       }
9383     } else {   9383     } else {
9384     9384  
9385     }   9385     }
9386   } else {   9386   } else {
9387     9387  
9388   }   9388   }
9389   if (arrghs->arg4) {   9389   if (arrghs->arg4) {
9390     while (1) {   9390     while (1) {
9391       if (vgPlain_tdict.track_pre_mem_write) {   9391       if (vgPlain_tdict.track_pre_mem_write) {
9392         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9392         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9393                                                (Char *)"getpmsg(bandp)",   9393                                                (Char *)"getpmsg(bandp)",
9394                                                arrghs->arg4,   9394                                                arrghs->arg4,
9395                                                (SizeT )sizeof(int ));   9395                                                (SizeT )sizeof(int ));
9396       } else {   9396       } else {
9397     9397  
9398       }   9398       }
9399       break;   9399       break;
9400     }   9400     }
9401   } else {   9401   } else {
9402     9402  
9403   }   9403   }
9404   if (arrghs->arg5) {   9404   if (arrghs->arg5) {
9405     while (1) {   9405     while (1) {
9406       if (vgPlain_tdict.track_pre_mem_write) {   9406       if (vgPlain_tdict.track_pre_mem_write) {
9407         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9407         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9408                                                (Char *)"getpmsg(flagsp)",   9408                                                (Char *)"getpmsg(flagsp)",
9409                                                arrghs->arg5,   9409                                                arrghs->arg5,
9410                                                (SizeT )sizeof(int ));   9410                                                (SizeT )sizeof(int ));
9411       } else {   9411       } else {
9412     9412  
9413       }   9413       }
9414       break;   9414       break;
9415     }   9415     }
9416   } else {   9416   } else {
9417     9417  
9418   }   9418   }
9419   return;   9419   return;
9420 }   9420 }
9421 }   9421 }
9422 void vgSysWrap_generic_sys_getpmsg_after(ThreadId tid , SyscallArgs *arrghs ,   9422 void vgSysWrap_generic_sys_getpmsg_after(ThreadId tid , SyscallArgs *arrghs ,
9423                                          SyscallStatus *status )   9423                                          SyscallStatus *status )
9424 {   9424 {
9425   struct vki_pmsg_strbuf *ctrl ;   9425   struct vki_pmsg_strbuf *ctrl ;
9426   struct vki_pmsg_strbuf *data ;   9426   struct vki_pmsg_strbuf *data ;
9427   Bool tmp ;   9427   Bool tmp ;
9428   int tmp___0 ;   9428   int tmp___0 ;
9429   long tmp___1 ;   9429   long tmp___1 ;
9430   UWord tmp___2 ;   9430   UWord tmp___2 ;
9431   UWord tmp___3 ;   9431   UWord tmp___3 ;
9432     9432  
9433   {   9433   {
9434   if ((unsigned int )status->what == 1U) {   9434   if ((unsigned int )status->what == 1U) {
9435     tmp = sr_isError(status->sres);   9435     tmp = sr_isError(status->sres);
9436     if (tmp) {   9436     if (tmp) {
9437       tmp___0 = 0;   9437       tmp___0 = 0;
9438     } else {   9438     } else {
9439       tmp___0 = 1;   9439       tmp___0 = 1;
9440     }   9440     }
9441   } else {   9441   } else {
9442     tmp___0 = 0;   9442     tmp___0 = 0;
9443   }   9443   }
9444   tmp___1 = __builtin_expect((long )tmp___0, 1L);   9444   tmp___1 = __builtin_expect((long )tmp___0, 1L);
9445   if (tmp___1) {   9445   if (tmp___1) {
9446     9446  
9447   } else {   9447   } else {
9448     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   9448     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
9449                         (Char const   *)"m_syswrap/syswrap-generic.c", 2221,   9449                         (Char const   *)"m_syswrap/syswrap-generic.c", 2221,
9450                         (Char const   *)"vgSysWrap_generic_sys_getpmsg_after",   9450                         (Char const   *)"vgSysWrap_generic_sys_getpmsg_after",
9451                         "");   9451                         "");
9452   }   9452   }
9453   ctrl = (struct vki_pmsg_strbuf *)arrghs->arg2;   9453   ctrl = (struct vki_pmsg_strbuf *)arrghs->arg2;
9454   data = (struct vki_pmsg_strbuf *)arrghs->arg3;   9454   data = (struct vki_pmsg_strbuf *)arrghs->arg3;
9455   tmp___2 = getRES(status);   9455   tmp___2 = getRES(status);
9456   if (tmp___2 == 0UL) {   9456   if (tmp___2 == 0UL) {
9457     if (ctrl) {   9457     if (ctrl) {
9458       if (ctrl->len > 0) {   9458       if (ctrl->len > 0) {
9459         while (1) {   9459         while (1) {
9460           if (vgPlain_tdict.track_post_mem_write) {   9460           if (vgPlain_tdict.track_post_mem_write) {
9461             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   9461             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
9462                                                     (Addr )ctrl->buf,   9462                                                     (Addr )ctrl->buf,
9463                                                     (SizeT )ctrl->len);   9463                                                     (SizeT )ctrl->len);
9464           } else {   9464           } else {
9465     9465  
9466           }   9466           }
9467           break;   9467           break;
9468         }   9468         }
9469       } else {   9469       } else {
9470     9470  
9471       }   9471       }
9472     } else {   9472     } else {
9473     9473  
9474     }   9474     }
9475   } else {   9475   } else {
9476     9476  
9477   }   9477   }
9478   tmp___3 = getRES(status);   9478   tmp___3 = getRES(status);
9479   if (tmp___3 == 0UL) {   9479   if (tmp___3 == 0UL) {
9480     if (data) {   9480     if (data) {
9481       if (data->len > 0) {   9481       if (data->len > 0) {
9482         while (1) {   9482         while (1) {
9483           if (vgPlain_tdict.track_post_mem_write) {   9483           if (vgPlain_tdict.track_post_mem_write) {
9484             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   9484             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
9485                                                     (Addr )data->buf,   9485                                                     (Addr )data->buf,
9486                                                     (SizeT )data->len);   9486                                                     (SizeT )data->len);
9487           } else {   9487           } else {
9488     9488  
9489           }   9489           }
9490           break;   9490           break;
9491         }   9491         }
9492       } else {   9492       } else {
9493     9493  
9494       }   9494       }
9495     } else {   9495     } else {
9496     9496  
9497     }   9497     }
9498   } else {   9498   } else {
9499     9499  
9500   }   9500   }
9501   return;   9501   return;
9502 }   9502 }
9503 }   9503 }
9504 void vgSysWrap_generic_sys_putpmsg_before(ThreadId tid ,   9504 void vgSysWrap_generic_sys_putpmsg_before(ThreadId tid ,
9505                                           SyscallArgLayout *layout ,   9505                                           SyscallArgLayout *layout ,
9506                                           SyscallArgs *arrghs ,   9506                                           SyscallArgs *arrghs ,
9507                                           SyscallStatus *status , UWord *flags )   9507                                           SyscallStatus *status , UWord *flags )
9508 {   9508 {
9509   struct vki_pmsg_strbuf *ctrl ;   9509   struct vki_pmsg_strbuf *ctrl ;
9510   struct vki_pmsg_strbuf *data ;   9510   struct vki_pmsg_strbuf *data ;
9511   Int here ;   9511   Int here ;
9512   long tmp ;   9512   long tmp ;
9513   long tmp___0 ;   9513   long tmp___0 ;
9514   Int here___0 ;   9514   Int here___0 ;
9515   long tmp___1 ;   9515   long tmp___1 ;
9516   long tmp___2 ;   9516   long tmp___2 ;
9517   Int here___1 ;   9517   Int here___1 ;
9518   long tmp___3 ;   9518   long tmp___3 ;
9519   long tmp___4 ;   9519   long tmp___4 ;
9520   Int here___2 ;   9520   Int here___2 ;
9521   long tmp___5 ;   9521   long tmp___5 ;
9522   long tmp___6 ;   9522   long tmp___6 ;
9523   Int here___3 ;   9523   Int here___3 ;
9524   long tmp___7 ;   9524   long tmp___7 ;
9525   long tmp___8 ;   9525   long tmp___8 ;
9526     9526  
9527   {   9527   {
9528   *flags |= (unsigned long )(1 << 1);   9528   *flags |= (unsigned long )(1 << 1);
9529   if (vgPlain_clo_trace_syscalls) {   9529   if (vgPlain_clo_trace_syscalls) {
9530     vgPlain_printf("sys_putpmsg ( %ld, %#lx, %#lx, %ld, %ld )", arrghs->arg1,   9530     vgPlain_printf("sys_putpmsg ( %ld, %#lx, %#lx, %ld, %ld )", arrghs->arg1,
9531                    arrghs->arg2, arrghs->arg3, arrghs->arg4, arrghs->arg5);   9531                    arrghs->arg2, arrghs->arg3, arrghs->arg4, arrghs->arg5);
9532   } else {   9532   } else {
9533     9533  
9534   }   9534   }
9535   if (vgPlain_tdict.track_pre_reg_read) {   9535   if (vgPlain_tdict.track_pre_reg_read) {
9536     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9536     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9537                                           (Char *)"(syscallno)",   9537                                           (Char *)"(syscallno)",
9538                                           (PtrdiffT )layout->o_sysno,   9538                                           (PtrdiffT )layout->o_sysno,
9539                                           (SizeT )sizeof(UWord ));   9539                                           (SizeT )sizeof(UWord ));
9540     while (1) {   9540     while (1) {
9541       here = layout->o_arg1;   9541       here = layout->o_arg1;
9542       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   9542       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
9543       if (tmp) {   9543       if (tmp) {
9544     9544  
9545       } else {   9545       } else {
9546         vgPlain_assert_fail((Bool )1,   9546         vgPlain_assert_fail((Bool )1,
9547                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   9547                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
9548                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9548                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9549                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9549                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9550                             "");   9550                             "");
9551       }   9551       }
9552       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   9552       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
9553       if (tmp___0) {   9553       if (tmp___0) {
9554     9554  
9555       } else {   9555       } else {
9556         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9556         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9557                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9557                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9558                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9558                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9559                             "");   9559                             "");
9560       }   9560       }
9561       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9561       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9562                                             (Char *)"putpmsg(fd)",   9562                                             (Char *)"putpmsg(fd)",
9563                                             (PtrdiffT )here,   9563                                             (PtrdiffT )here,
9564                                             (SizeT )sizeof(int ));   9564                                             (SizeT )sizeof(int ));
9565       break;   9565       break;
9566     }   9566     }
9567     while (1) {   9567     while (1) {
9568       here___0 = layout->o_arg2;   9568       here___0 = layout->o_arg2;
9569       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),   9569       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),
9570                                  1L);   9570                                  1L);
9571       if (tmp___1) {   9571       if (tmp___1) {
9572     9572  
9573       } else {   9573       } else {
9574         vgPlain_assert_fail((Bool )1,   9574         vgPlain_assert_fail((Bool )1,
9575                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",   9575                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",
9576                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9576                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9577                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9577                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9578                             "");   9578                             "");
9579       }   9579       }
9580       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   9580       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
9581       if (tmp___2) {   9581       if (tmp___2) {
9582     9582  
9583       } else {   9583       } else {
9584         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9584         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9585                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9585                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9586                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9586                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9587                             "");   9587                             "");
9588       }   9588       }
9589       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9589       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9590                                             (Char *)"putpmsg(ctrl)",   9590                                             (Char *)"putpmsg(ctrl)",
9591                                             (PtrdiffT )here___0,   9591                                             (PtrdiffT )here___0,
9592                                             (SizeT )sizeof(struct strbuf *));   9592                                             (SizeT )sizeof(struct strbuf *));
9593       break;   9593       break;
9594     }   9594     }
9595     while (1) {   9595     while (1) {
9596       here___1 = layout->o_arg3;   9596       here___1 = layout->o_arg3;
9597       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),   9597       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct strbuf *) <= sizeof(UWord )))),
9598                                  1L);   9598                                  1L);
9599       if (tmp___3) {   9599       if (tmp___3) {
9600     9600  
9601       } else {   9601       } else {
9602         vgPlain_assert_fail((Bool )1,   9602         vgPlain_assert_fail((Bool )1,
9603                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",   9603                             (Char const   *)"sizeof(struct strbuf *) <= sizeof(UWord)",
9604                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9604                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9605                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9605                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9606                             "");   9606                             "");
9607       }   9607       }
9608       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   9608       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
9609       if (tmp___4) {   9609       if (tmp___4) {
9610     9610  
9611       } else {   9611       } else {
9612         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9612         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9613                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9613                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9614                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9614                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9615                             "");   9615                             "");
9616       }   9616       }
9617       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9617       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9618                                             (Char *)"putpmsg(data)",   9618                                             (Char *)"putpmsg(data)",
9619                                             (PtrdiffT )here___1,   9619                                             (PtrdiffT )here___1,
9620                                             (SizeT )sizeof(struct strbuf *));   9620                                             (SizeT )sizeof(struct strbuf *));
9621       break;   9621       break;
9622     }   9622     }
9623     while (1) {   9623     while (1) {
9624       here___2 = layout->o_arg4;   9624       here___2 = layout->o_arg4;
9625       tmp___5 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   9625       tmp___5 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
9626                                  1L);   9626                                  1L);
9627       if (tmp___5) {   9627       if (tmp___5) {
9628     9628  
9629       } else {   9629       } else {
9630         vgPlain_assert_fail((Bool )1,   9630         vgPlain_assert_fail((Bool )1,
9631                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   9631                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
9632                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9632                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9633                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9633                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9634                             "");   9634                             "");
9635       }   9635       }
9636       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   9636       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
9637       if (tmp___6) {   9637       if (tmp___6) {
9638     9638  
9639       } else {   9639       } else {
9640         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9640         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9641                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9641                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9642                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9642                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9643                             "");   9643                             "");
9644       }   9644       }
9645       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9645       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9646                                             (Char *)"putpmsg(band)",   9646                                             (Char *)"putpmsg(band)",
9647                                             (PtrdiffT )here___2,   9647                                             (PtrdiffT )here___2,
9648                                             (SizeT )sizeof(int ));   9648                                             (SizeT )sizeof(int ));
9649       break;   9649       break;
9650     }   9650     }
9651     while (1) {   9651     while (1) {
9652       here___3 = layout->o_arg5;   9652       here___3 = layout->o_arg5;
9653       tmp___7 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   9653       tmp___7 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
9654                                  1L);   9654                                  1L);
9655       if (tmp___7) {   9655       if (tmp___7) {
9656     9656  
9657       } else {   9657       } else {
9658         vgPlain_assert_fail((Bool )1,   9658         vgPlain_assert_fail((Bool )1,
9659                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   9659                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
9660                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9660                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9661                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9661                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9662                             "");   9662                             "");
9663       }   9663       }
9664       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);   9664       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);
9665       if (tmp___8) {   9665       if (tmp___8) {
9666     9666  
9667       } else {   9667       } else {
9668         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9668         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9669                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,   9669                             (Char const   *)"m_syswrap/syswrap-generic.c", 2241,
9670                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",   9670                             (Char const   *)"vgSysWrap_generic_sys_putpmsg_before",
9671                             "");   9671                             "");
9672       }   9672       }
9673       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9673       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9674                                             (Char *)"putpmsg(flags)",   9674                                             (Char *)"putpmsg(flags)",
9675                                             (PtrdiffT )here___3,   9675                                             (PtrdiffT )here___3,
9676                                             (SizeT )sizeof(int ));   9676                                             (SizeT )sizeof(int ));
9677       break;   9677       break;
9678     }   9678     }
9679   } else {   9679   } else {
9680     9680  
9681   }   9681   }
9682   ctrl = (struct vki_pmsg_strbuf *)arrghs->arg2;   9682   ctrl = (struct vki_pmsg_strbuf *)arrghs->arg2;
9683   data = (struct vki_pmsg_strbuf *)arrghs->arg3;   9683   data = (struct vki_pmsg_strbuf *)arrghs->arg3;
9684   if (ctrl) {   9684   if (ctrl) {
9685     if (ctrl->len > 0) {   9685     if (ctrl->len > 0) {
9686       while (1) {   9686       while (1) {
9687         if (vgPlain_tdict.track_pre_mem_read) {   9687         if (vgPlain_tdict.track_pre_mem_read) {
9688           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   9688           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
9689                                                 (Char *)"putpmsg(ctrl)",   9689                                                 (Char *)"putpmsg(ctrl)",
9690                                                 (Addr )ctrl->buf,   9690                                                 (Addr )ctrl->buf,
9691                                                 (SizeT )ctrl->len);   9691                                                 (SizeT )ctrl->len);
9692         } else {   9692         } else {
9693     9693  
9694         }   9694         }
9695         break;   9695         break;
9696       }   9696       }
9697     } else {   9697     } else {
9698     9698  
9699     }   9699     }
9700   } else {   9700   } else {
9701     9701  
9702   }   9702   }
9703   if (data) {   9703   if (data) {
9704     if (data->len > 0) {   9704     if (data->len > 0) {
9705       while (1) {   9705       while (1) {
9706         if (vgPlain_tdict.track_pre_mem_read) {   9706         if (vgPlain_tdict.track_pre_mem_read) {
9707           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   9707           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
9708                                                 (Char *)"putpmsg(data)",   9708                                                 (Char *)"putpmsg(data)",
9709                                                 (Addr )data->buf,   9709                                                 (Addr )data->buf,
9710                                                 (SizeT )data->len);   9710                                                 (SizeT )data->len);
9711         } else {   9711         } else {
9712     9712  
9713         }   9713         }
9714         break;   9714         break;
9715       }   9715       }
9716     } else {   9716     } else {
9717     9717  
9718     }   9718     }
9719   } else {   9719   } else {
9720     9720  
9721   }   9721   }
9722   return;   9722   return;
9723 }   9723 }
9724 }   9724 }
9725 void vgSysWrap_generic_sys_getitimer_before(ThreadId tid ,   9725 void vgSysWrap_generic_sys_getitimer_before(ThreadId tid ,
9726                                             SyscallArgLayout *layout ,   9726                                             SyscallArgLayout *layout ,
9727                                             SyscallArgs *arrghs ,   9727                                             SyscallArgs *arrghs ,
9728                                             SyscallStatus *status ,   9728                                             SyscallStatus *status ,
9729                                             UWord *flags )   9729                                             UWord *flags )
9730 {   9730 {
9731   struct vki_itimerval *value ;   9731   struct vki_itimerval *value ;
9732   Int here ;   9732   Int here ;
9733   long tmp ;   9733   long tmp ;
9734   long tmp___0 ;   9734   long tmp___0 ;
9735   Int here___0 ;   9735   Int here___0 ;
9736   long tmp___1 ;   9736   long tmp___1 ;
9737   long tmp___2 ;   9737   long tmp___2 ;
9738   struct vki_timeval *zztv ;   9738   struct vki_timeval *zztv ;
9739   struct vki_timeval *zztv___0 ;   9739   struct vki_timeval *zztv___0 ;
9740     9740  
9741   {   9741   {
9742   value = (struct vki_itimerval *)arrghs->arg2;   9742   value = (struct vki_itimerval *)arrghs->arg2;
9743   if (vgPlain_clo_trace_syscalls) {   9743   if (vgPlain_clo_trace_syscalls) {
9744     vgPlain_printf("sys_getitimer ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   9744     vgPlain_printf("sys_getitimer ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
9745   } else {   9745   } else {
9746     9746  
9747   }   9747   }
9748   if (vgPlain_tdict.track_pre_reg_read) {   9748   if (vgPlain_tdict.track_pre_reg_read) {
9749     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9749     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9750                                           (Char *)"(syscallno)",   9750                                           (Char *)"(syscallno)",
9751                                           (PtrdiffT )layout->o_sysno,   9751                                           (PtrdiffT )layout->o_sysno,
9752                                           (SizeT )sizeof(UWord ));   9752                                           (SizeT )sizeof(UWord ));
9753     while (1) {   9753     while (1) {
9754       here = layout->o_arg1;   9754       here = layout->o_arg1;
9755       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   9755       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
9756       if (tmp) {   9756       if (tmp) {
9757     9757  
9758       } else {   9758       } else {
9759         vgPlain_assert_fail((Bool )1,   9759         vgPlain_assert_fail((Bool )1,
9760                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   9760                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
9761                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,   9761                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,
9762                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",   9762                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",
9763                             "");   9763                             "");
9764       }   9764       }
9765       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   9765       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
9766       if (tmp___0) {   9766       if (tmp___0) {
9767     9767  
9768       } else {   9768       } else {
9769         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9769         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9770                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,   9770                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,
9771                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",   9771                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",
9772                             "");   9772                             "");
9773       }   9773       }
9774       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9774       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9775                                             (Char *)"getitimer(which)",   9775                                             (Char *)"getitimer(which)",
9776                                             (PtrdiffT )here,   9776                                             (PtrdiffT )here,
9777                                             (SizeT )sizeof(int ));   9777                                             (SizeT )sizeof(int ));
9778       break;   9778       break;
9779     }   9779     }
9780     while (1) {   9780     while (1) {
9781       here___0 = layout->o_arg2;   9781       here___0 = layout->o_arg2;
9782       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct itimerval *) <= sizeof(UWord )))),   9782       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct itimerval *) <= sizeof(UWord )))),
9783                                  1L);   9783                                  1L);
9784       if (tmp___1) {   9784       if (tmp___1) {
9785     9785  
9786       } else {   9786       } else {
9787         vgPlain_assert_fail((Bool )1,   9787         vgPlain_assert_fail((Bool )1,
9788                             (Char const   *)"sizeof(struct itimerval *) <= sizeof(UWord)",   9788                             (Char const   *)"sizeof(struct itimerval *) <= sizeof(UWord)",
9789                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,   9789                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,
9790                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",   9790                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",
9791                             "");   9791                             "");
9792       }   9792       }
9793       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   9793       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
9794       if (tmp___2) {   9794       if (tmp___2) {
9795     9795  
9796       } else {   9796       } else {
9797         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9797         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9798                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,   9798                             (Char const   *)"m_syswrap/syswrap-generic.c", 2254,
9799                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",   9799                             (Char const   *)"vgSysWrap_generic_sys_getitimer_before",
9800                             "");   9800                             "");
9801       }   9801       }
9802       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9802       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9803                                             (Char *)"getitimer(value)",   9803                                             (Char *)"getitimer(value)",
9804                                             (PtrdiffT )here___0,   9804                                             (PtrdiffT )here___0,
9805                                             (SizeT )sizeof(struct itimerval *));   9805                                             (SizeT )sizeof(struct itimerval *));
9806       break;   9806       break;
9807     }   9807     }
9808   } else {   9808   } else {
9809     9809  
9810   }   9810   }
9811   while (1) {   9811   while (1) {
9812     zztv = & value->it_interval;   9812     zztv = & value->it_interval;
9813     while (1) {   9813     while (1) {
9814       if (vgPlain_tdict.track_pre_mem_write) {   9814       if (vgPlain_tdict.track_pre_mem_write) {
9815         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9815         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9816                                                (Char *)"getitimer(&value->it_interval)",   9816                                                (Char *)"getitimer(&value->it_interval)",
9817                                                (UWord )(& zztv->tv_sec),   9817                                                (UWord )(& zztv->tv_sec),
9818                                                (SizeT )sizeof(zztv->tv_sec));   9818                                                (SizeT )sizeof(zztv->tv_sec));
9819       } else {   9819       } else {
9820     9820  
9821       }   9821       }
9822       break;   9822       break;
9823     }   9823     }
9824     while (1) {   9824     while (1) {
9825       if (vgPlain_tdict.track_pre_mem_write) {   9825       if (vgPlain_tdict.track_pre_mem_write) {
9826         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9826         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9827                                                (Char *)"getitimer(&value->it_interval)",   9827                                                (Char *)"getitimer(&value->it_interval)",
9828                                                (UWord )(& zztv->tv_usec),   9828                                                (UWord )(& zztv->tv_usec),
9829                                                (SizeT )sizeof(zztv->tv_usec));   9829                                                (SizeT )sizeof(zztv->tv_usec));
9830       } else {   9830       } else {
9831     9831  
9832       }   9832       }
9833       break;   9833       break;
9834     }   9834     }
9835     break;   9835     break;
9836   }   9836   }
9837   while (1) {   9837   while (1) {
9838     zztv___0 = & value->it_value;   9838     zztv___0 = & value->it_value;
9839     while (1) {   9839     while (1) {
9840       if (vgPlain_tdict.track_pre_mem_write) {   9840       if (vgPlain_tdict.track_pre_mem_write) {
9841         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9841         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9842                                                (Char *)"getitimer(&value->it_value)",   9842                                                (Char *)"getitimer(&value->it_value)",
9843                                                (UWord )(& zztv___0->tv_sec),   9843                                                (UWord )(& zztv___0->tv_sec),
9844                                                (SizeT )sizeof(zztv___0->tv_sec));   9844                                                (SizeT )sizeof(zztv___0->tv_sec));
9845       } else {   9845       } else {
9846     9846  
9847       }   9847       }
9848       break;   9848       break;
9849     }   9849     }
9850     while (1) {   9850     while (1) {
9851       if (vgPlain_tdict.track_pre_mem_write) {   9851       if (vgPlain_tdict.track_pre_mem_write) {
9852         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   9852         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
9853                                                (Char *)"getitimer(&value->it_value)",   9853                                                (Char *)"getitimer(&value->it_value)",
9854                                                (UWord )(& zztv___0->tv_usec),   9854                                                (UWord )(& zztv___0->tv_usec),
9855                                                (SizeT )sizeof(zztv___0->tv_usec));   9855                                                (SizeT )sizeof(zztv___0->tv_usec));
9856       } else {   9856       } else {
9857     9857  
9858       }   9858       }
9859       break;   9859       break;
9860     }   9860     }
9861     break;   9861     break;
9862   }   9862   }
9863   return;   9863   return;
9864 }   9864 }
9865 }   9865 }
9866 void vgSysWrap_generic_sys_getitimer_after(ThreadId tid , SyscallArgs *arrghs ,   9866 void vgSysWrap_generic_sys_getitimer_after(ThreadId tid , SyscallArgs *arrghs ,
9867                                            SyscallStatus *status )   9867                                            SyscallStatus *status )
9868 {   9868 {
9869   struct vki_itimerval *value ;   9869   struct vki_itimerval *value ;
9870   struct vki_timeval *zztv ;   9870   struct vki_timeval *zztv ;
9871   struct vki_timeval *zztv___0 ;   9871   struct vki_timeval *zztv___0 ;
9872     9872  
9873   {   9873   {
9874   if (arrghs->arg2 != (Addr )((void *)0)) {   9874   if (arrghs->arg2 != (Addr )((void *)0)) {
9875     value = (struct vki_itimerval *)arrghs->arg2;   9875     value = (struct vki_itimerval *)arrghs->arg2;
9876     while (1) {   9876     while (1) {
9877       zztv = & value->it_interval;   9877       zztv = & value->it_interval;
9878       while (1) {   9878       while (1) {
9879         if (vgPlain_tdict.track_post_mem_write) {   9879         if (vgPlain_tdict.track_post_mem_write) {
9880           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   9880           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
9881                                                   (UWord )(& zztv->tv_sec),   9881                                                   (UWord )(& zztv->tv_sec),
9882                                                   (SizeT )sizeof(zztv->tv_sec));   9882                                                   (SizeT )sizeof(zztv->tv_sec));
9883         } else {   9883         } else {
9884     9884  
9885         }   9885         }
9886         break;   9886         break;
9887       }   9887       }
9888       while (1) {   9888       while (1) {
9889         if (vgPlain_tdict.track_post_mem_write) {   9889         if (vgPlain_tdict.track_post_mem_write) {
9890           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   9890           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
9891                                                   (UWord )(& zztv->tv_usec),   9891                                                   (UWord )(& zztv->tv_usec),
9892                                                   (SizeT )sizeof(zztv->tv_usec));   9892                                                   (SizeT )sizeof(zztv->tv_usec));
9893         } else {   9893         } else {
9894     9894  
9895         }   9895         }
9896         break;   9896         break;
9897       }   9897       }
9898       break;   9898       break;
9899     }   9899     }
9900     while (1) {   9900     while (1) {
9901       zztv___0 = & value->it_value;   9901       zztv___0 = & value->it_value;
9902       while (1) {   9902       while (1) {
9903         if (vgPlain_tdict.track_post_mem_write) {   9903         if (vgPlain_tdict.track_post_mem_write) {
9904           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   9904           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
9905                                                   (UWord )(& zztv___0->tv_sec),   9905                                                   (UWord )(& zztv___0->tv_sec),
9906                                                   (SizeT )sizeof(zztv___0->tv_sec));   9906                                                   (SizeT )sizeof(zztv___0->tv_sec));
9907         } else {   9907         } else {
9908     9908  
9909         }   9909         }
9910         break;   9910         break;
9911       }   9911       }
9912       while (1) {   9912       while (1) {
9913         if (vgPlain_tdict.track_post_mem_write) {   9913         if (vgPlain_tdict.track_post_mem_write) {
9914           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   9914           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
9915                                                   (UWord )(& zztv___0->tv_usec),   9915                                                   (UWord )(& zztv___0->tv_usec),
9916                                                   (SizeT )sizeof(zztv___0->tv_usec));   9916                                                   (SizeT )sizeof(zztv___0->tv_usec));
9917         } else {   9917         } else {
9918     9918  
9919         }   9919         }
9920         break;   9920         break;
9921       }   9921       }
9922       break;   9922       break;
9923     }   9923     }
9924   } else {   9924   } else {
9925     9925  
9926   }   9926   }
9927   return;   9927   return;
9928 }   9928 }
9929 }   9929 }
9930 void vgSysWrap_generic_sys_setitimer_before(ThreadId tid ,   9930 void vgSysWrap_generic_sys_setitimer_before(ThreadId tid ,
9931                                             SyscallArgLayout *layout ,   9931                                             SyscallArgLayout *layout ,
9932                                             SyscallArgs *arrghs ,   9932                                             SyscallArgs *arrghs ,
9933                                             SyscallStatus *status ,   9933                                             SyscallStatus *status ,
9934                                             UWord *flags )   9934                                             UWord *flags )
9935 {   9935 {
9936   Int here ;   9936   Int here ;
9937   long tmp ;   9937   long tmp ;
9938   long tmp___0 ;   9938   long tmp___0 ;
9939   Int here___0 ;   9939   Int here___0 ;
9940   long tmp___1 ;   9940   long tmp___1 ;
9941   long tmp___2 ;   9941   long tmp___2 ;
9942   Int here___1 ;   9942   Int here___1 ;
9943   long tmp___3 ;   9943   long tmp___3 ;
9944   long tmp___4 ;   9944   long tmp___4 ;
9945   struct vki_itimerval *value ;   9945   struct vki_itimerval *value ;
9946   struct vki_timeval *zztv ;   9946   struct vki_timeval *zztv ;
9947   struct vki_timeval *zztv___0 ;   9947   struct vki_timeval *zztv___0 ;
9948   struct vki_itimerval *ovalue ;   9948   struct vki_itimerval *ovalue ;
9949   struct vki_timeval *zztv___1 ;   9949   struct vki_timeval *zztv___1 ;
9950   struct vki_timeval *zztv___2 ;   9950   struct vki_timeval *zztv___2 ;
9951     9951  
9952   {   9952   {
9953   if (vgPlain_clo_trace_syscalls) {   9953   if (vgPlain_clo_trace_syscalls) {
9954     vgPlain_printf("sys_setitimer ( %ld, %#lx, %#lx )", arrghs->arg1,   9954     vgPlain_printf("sys_setitimer ( %ld, %#lx, %#lx )", arrghs->arg1,
9955                    arrghs->arg2, arrghs->arg3);   9955                    arrghs->arg2, arrghs->arg3);
9956   } else {   9956   } else {
9957     9957  
9958   }   9958   }
9959   if (vgPlain_tdict.track_pre_reg_read) {   9959   if (vgPlain_tdict.track_pre_reg_read) {
9960     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9960     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9961                                           (Char *)"(syscallno)",   9961                                           (Char *)"(syscallno)",
9962                                           (PtrdiffT )layout->o_sysno,   9962                                           (PtrdiffT )layout->o_sysno,
9963                                           (SizeT )sizeof(UWord ));   9963                                           (SizeT )sizeof(UWord ));
9964     while (1) {   9964     while (1) {
9965       here = layout->o_arg1;   9965       here = layout->o_arg1;
9966       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   9966       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
9967       if (tmp) {   9967       if (tmp) {
9968     9968  
9969       } else {   9969       } else {
9970         vgPlain_assert_fail((Bool )1,   9970         vgPlain_assert_fail((Bool )1,
9971                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   9971                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
9972                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,   9972                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,
9973                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",   9973                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",
9974                             "");   9974                             "");
9975       }   9975       }
9976       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   9976       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
9977       if (tmp___0) {   9977       if (tmp___0) {
9978     9978  
9979       } else {   9979       } else {
9980         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   9980         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
9981                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,   9981                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,
9982                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",   9982                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",
9983                             "");   9983                             "");
9984       }   9984       }
9985       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   9985       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
9986                                             (Char *)"setitimer(which)",   9986                                             (Char *)"setitimer(which)",
9987                                             (PtrdiffT )here,   9987                                             (PtrdiffT )here,
9988                                             (SizeT )sizeof(int ));   9988                                             (SizeT )sizeof(int ));
9989       break;   9989       break;
9990     }   9990     }
9991     while (1) {   9991     while (1) {
9992       here___0 = layout->o_arg2;   9992       here___0 = layout->o_arg2;
9993       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct itimerval *) <= sizeof(UWord )))),   9993       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct itimerval *) <= sizeof(UWord )))),
9994                                  1L);   9994                                  1L);
9995       if (tmp___1) {   9995       if (tmp___1) {
9996     9996  
9997       } else {   9997       } else {
9998         vgPlain_assert_fail((Bool )1,   9998         vgPlain_assert_fail((Bool )1,
9999                             (Char const   *)"sizeof(struct itimerval *) <= sizeof(UWord)",   9999                             (Char const   *)"sizeof(struct itimerval *) <= sizeof(UWord)",
10000                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,   10000                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,
10001                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",   10001                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",
10002                             "");   10002                             "");
10003       }   10003       }
10004       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   10004       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
10005       if (tmp___2) {   10005       if (tmp___2) {
10006     10006  
10007       } else {   10007       } else {
10008         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10008         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10009                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,   10009                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,
10010                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",   10010                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",
10011                             "");   10011                             "");
10012       }   10012       }
10013       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10013       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10014                                             (Char *)"setitimer(value)",   10014                                             (Char *)"setitimer(value)",
10015                                             (PtrdiffT )here___0,   10015                                             (PtrdiffT )here___0,
10016                                             (SizeT )sizeof(struct itimerval *));   10016                                             (SizeT )sizeof(struct itimerval *));
10017       break;   10017       break;
10018     }   10018     }
10019     while (1) {   10019     while (1) {
10020       here___1 = layout->o_arg3;   10020       here___1 = layout->o_arg3;
10021       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct itimerval *) <= sizeof(UWord )))),   10021       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct itimerval *) <= sizeof(UWord )))),
10022                                  1L);   10022                                  1L);
10023       if (tmp___3) {   10023       if (tmp___3) {
10024     10024  
10025       } else {   10025       } else {
10026         vgPlain_assert_fail((Bool )1,   10026         vgPlain_assert_fail((Bool )1,
10027                             (Char const   *)"sizeof(struct itimerval *) <= sizeof(UWord)",   10027                             (Char const   *)"sizeof(struct itimerval *) <= sizeof(UWord)",
10028                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,   10028                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,
10029                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",   10029                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",
10030                             "");   10030                             "");
10031       }   10031       }
10032       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   10032       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
10033       if (tmp___4) {   10033       if (tmp___4) {
10034     10034  
10035       } else {   10035       } else {
10036         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10036         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10037                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,   10037                             (Char const   *)"m_syswrap/syswrap-generic.c", 2274,
10038                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",   10038                             (Char const   *)"vgSysWrap_generic_sys_setitimer_before",
10039                             "");   10039                             "");
10040       }   10040       }
10041       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10041       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10042                                             (Char *)"setitimer(ovalue)",   10042                                             (Char *)"setitimer(ovalue)",
10043                                             (PtrdiffT )here___1,   10043                                             (PtrdiffT )here___1,
10044                                             (SizeT )sizeof(struct itimerval *));   10044                                             (SizeT )sizeof(struct itimerval *));
10045       break;   10045       break;
10046     }   10046     }
10047   } else {   10047   } else {
10048     10048  
10049   }   10049   }
10050   if (arrghs->arg2 != (Addr )((void *)0)) {   10050   if (arrghs->arg2 != (Addr )((void *)0)) {
10051     value = (struct vki_itimerval *)arrghs->arg2;   10051     value = (struct vki_itimerval *)arrghs->arg2;
10052     while (1) {   10052     while (1) {
10053       zztv = & value->it_interval;   10053       zztv = & value->it_interval;
10054       while (1) {   10054       while (1) {
10055         if (vgPlain_tdict.track_pre_mem_read) {   10055         if (vgPlain_tdict.track_pre_mem_read) {
10056           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   10056           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
10057                                                 (Char *)"setitimer(&value->it_interval)",   10057                                                 (Char *)"setitimer(&value->it_interval)",
10058                                                 (UWord )(& zztv->tv_sec),   10058                                                 (UWord )(& zztv->tv_sec),
10059                                                 (SizeT )sizeof(zztv->tv_sec));   10059                                                 (SizeT )sizeof(zztv->tv_sec));
10060         } else {   10060         } else {
10061     10061  
10062         }   10062         }
10063         break;   10063         break;
10064       }   10064       }
10065       while (1) {   10065       while (1) {
10066         if (vgPlain_tdict.track_pre_mem_read) {   10066         if (vgPlain_tdict.track_pre_mem_read) {
10067           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   10067           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
10068                                                 (Char *)"setitimer(&value->it_interval)",   10068                                                 (Char *)"setitimer(&value->it_interval)",
10069                                                 (UWord )(& zztv->tv_usec),   10069                                                 (UWord )(& zztv->tv_usec),
10070                                                 (SizeT )sizeof(zztv->tv_usec));   10070                                                 (SizeT )sizeof(zztv->tv_usec));
10071         } else {   10071         } else {
10072     10072  
10073         }   10073         }
10074         break;   10074         break;
10075       }   10075       }
10076       break;   10076       break;
10077     }   10077     }
10078     while (1) {   10078     while (1) {
10079       zztv___0 = & value->it_value;   10079       zztv___0 = & value->it_value;
10080       while (1) {   10080       while (1) {
10081         if (vgPlain_tdict.track_pre_mem_read) {   10081         if (vgPlain_tdict.track_pre_mem_read) {
10082           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   10082           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
10083                                                 (Char *)"setitimer(&value->it_value)",   10083                                                 (Char *)"setitimer(&value->it_value)",
10084                                                 (UWord )(& zztv___0->tv_sec),   10084                                                 (UWord )(& zztv___0->tv_sec),
10085                                                 (SizeT )sizeof(zztv___0->tv_sec));   10085                                                 (SizeT )sizeof(zztv___0->tv_sec));
10086         } else {   10086         } else {
10087     10087  
10088         }   10088         }
10089         break;   10089         break;
10090       }   10090       }
10091       while (1) {   10091       while (1) {
10092         if (vgPlain_tdict.track_pre_mem_read) {   10092         if (vgPlain_tdict.track_pre_mem_read) {
10093           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   10093           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
10094                                                 (Char *)"setitimer(&value->it_value)",   10094                                                 (Char *)"setitimer(&value->it_value)",
10095                                                 (UWord )(& zztv___0->tv_usec),   10095                                                 (UWord )(& zztv___0->tv_usec),
10096                                                 (SizeT )sizeof(zztv___0->tv_usec));   10096                                                 (SizeT )sizeof(zztv___0->tv_usec));
10097         } else {   10097         } else {
10098     10098  
10099         }   10099         }
10100         break;   10100         break;
10101       }   10101       }
10102       break;   10102       break;
10103     }   10103     }
10104   } else {   10104   } else {
10105     10105  
10106   }   10106   }
10107   if (arrghs->arg3 != (Addr )((void *)0)) {   10107   if (arrghs->arg3 != (Addr )((void *)0)) {
10108     ovalue = (struct vki_itimerval *)arrghs->arg3;   10108     ovalue = (struct vki_itimerval *)arrghs->arg3;
10109     while (1) {   10109     while (1) {
10110       zztv___1 = & ovalue->it_interval;   10110       zztv___1 = & ovalue->it_interval;
10111       while (1) {   10111       while (1) {
10112         if (vgPlain_tdict.track_pre_mem_write) {   10112         if (vgPlain_tdict.track_pre_mem_write) {
10113           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   10113           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
10114                                                  (Char *)"setitimer(&ovalue->it_interval)",   10114                                                  (Char *)"setitimer(&ovalue->it_interval)",
10115                                                  (UWord )(& zztv___1->tv_sec),   10115                                                  (UWord )(& zztv___1->tv_sec),
10116                                                  (SizeT )sizeof(zztv___1->tv_sec));   10116                                                  (SizeT )sizeof(zztv___1->tv_sec));
10117         } else {   10117         } else {
10118     10118  
10119         }   10119         }
10120         break;   10120         break;
10121       }   10121       }
10122       while (1) {   10122       while (1) {
10123         if (vgPlain_tdict.track_pre_mem_write) {   10123         if (vgPlain_tdict.track_pre_mem_write) {
10124           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   10124           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
10125                                                  (Char *)"setitimer(&ovalue->it_interval)",   10125                                                  (Char *)"setitimer(&ovalue->it_interval)",
10126                                                  (UWord )(& zztv___1->tv_usec),   10126                                                  (UWord )(& zztv___1->tv_usec),
10127                                                  (SizeT )sizeof(zztv___1->tv_usec));   10127                                                  (SizeT )sizeof(zztv___1->tv_usec));
10128         } else {   10128         } else {
10129     10129  
10130         }   10130         }
10131         break;   10131         break;
10132       }   10132       }
10133       break;   10133       break;
10134     }   10134     }
10135     while (1) {   10135     while (1) {
10136       zztv___2 = & ovalue->it_value;   10136       zztv___2 = & ovalue->it_value;
10137       while (1) {   10137       while (1) {
10138         if (vgPlain_tdict.track_pre_mem_write) {   10138         if (vgPlain_tdict.track_pre_mem_write) {
10139           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   10139           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
10140                                                  (Char *)"setitimer(&ovalue->it_value)",   10140                                                  (Char *)"setitimer(&ovalue->it_value)",
10141                                                  (UWord )(& zztv___2->tv_sec),   10141                                                  (UWord )(& zztv___2->tv_sec),
10142                                                  (SizeT )sizeof(zztv___2->tv_sec));   10142                                                  (SizeT )sizeof(zztv___2->tv_sec));
10143         } else {   10143         } else {
10144     10144  
10145         }   10145         }
10146         break;   10146         break;
10147       }   10147       }
10148       while (1) {   10148       while (1) {
10149         if (vgPlain_tdict.track_pre_mem_write) {   10149         if (vgPlain_tdict.track_pre_mem_write) {
10150           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   10150           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
10151                                                  (Char *)"setitimer(&ovalue->it_value)",   10151                                                  (Char *)"setitimer(&ovalue->it_value)",
10152                                                  (UWord )(& zztv___2->tv_usec),   10152                                                  (UWord )(& zztv___2->tv_usec),
10153                                                  (SizeT )sizeof(zztv___2->tv_usec));   10153                                                  (SizeT )sizeof(zztv___2->tv_usec));
10154         } else {   10154         } else {
10155     10155  
10156         }   10156         }
10157         break;   10157         break;
10158       }   10158       }
10159       break;   10159       break;
10160     }   10160     }
10161   } else {   10161   } else {
10162     10162  
10163   }   10163   }
10164   return;   10164   return;
10165 }   10165 }
10166 }   10166 }
10167 void vgSysWrap_generic_sys_setitimer_after(ThreadId tid , SyscallArgs *arrghs ,   10167 void vgSysWrap_generic_sys_setitimer_after(ThreadId tid , SyscallArgs *arrghs ,
10168                                            SyscallStatus *status )   10168                                            SyscallStatus *status )
10169 {   10169 {
10170   struct vki_itimerval *ovalue ;   10170   struct vki_itimerval *ovalue ;
10171   struct vki_timeval *zztv ;   10171   struct vki_timeval *zztv ;
10172   struct vki_timeval *zztv___0 ;   10172   struct vki_timeval *zztv___0 ;
10173     10173  
10174   {   10174   {
10175   if (arrghs->arg3 != (Addr )((void *)0)) {   10175   if (arrghs->arg3 != (Addr )((void *)0)) {
10176     ovalue = (struct vki_itimerval *)arrghs->arg3;   10176     ovalue = (struct vki_itimerval *)arrghs->arg3;
10177     while (1) {   10177     while (1) {
10178       zztv = & ovalue->it_interval;   10178       zztv = & ovalue->it_interval;
10179       while (1) {   10179       while (1) {
10180         if (vgPlain_tdict.track_post_mem_write) {   10180         if (vgPlain_tdict.track_post_mem_write) {
10181           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   10181           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
10182                                                   (UWord )(& zztv->tv_sec),   10182                                                   (UWord )(& zztv->tv_sec),
10183                                                   (SizeT )sizeof(zztv->tv_sec));   10183                                                   (SizeT )sizeof(zztv->tv_sec));
10184         } else {   10184         } else {
10185     10185  
10186         }   10186         }
10187         break;   10187         break;
10188       }   10188       }
10189       while (1) {   10189       while (1) {
10190         if (vgPlain_tdict.track_post_mem_write) {   10190         if (vgPlain_tdict.track_post_mem_write) {
10191           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   10191           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
10192                                                   (UWord )(& zztv->tv_usec),   10192                                                   (UWord )(& zztv->tv_usec),
10193                                                   (SizeT )sizeof(zztv->tv_usec));   10193                                                   (SizeT )sizeof(zztv->tv_usec));
10194         } else {   10194         } else {
10195     10195  
10196         }   10196         }
10197         break;   10197         break;
10198       }   10198       }
10199       break;   10199       break;
10200     }   10200     }
10201     while (1) {   10201     while (1) {
10202       zztv___0 = & ovalue->it_value;   10202       zztv___0 = & ovalue->it_value;
10203       while (1) {   10203       while (1) {
10204         if (vgPlain_tdict.track_post_mem_write) {   10204         if (vgPlain_tdict.track_post_mem_write) {
10205           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   10205           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
10206                                                   (UWord )(& zztv___0->tv_sec),   10206                                                   (UWord )(& zztv___0->tv_sec),
10207                                                   (SizeT )sizeof(zztv___0->tv_sec));   10207                                                   (SizeT )sizeof(zztv___0->tv_sec));
10208         } else {   10208         } else {
10209     10209  
10210         }   10210         }
10211         break;   10211         break;
10212       }   10212       }
10213       while (1) {   10213       while (1) {
10214         if (vgPlain_tdict.track_post_mem_write) {   10214         if (vgPlain_tdict.track_post_mem_write) {
10215           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   10215           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
10216                                                   (UWord )(& zztv___0->tv_usec),   10216                                                   (UWord )(& zztv___0->tv_usec),
10217                                                   (SizeT )sizeof(zztv___0->tv_usec));   10217                                                   (SizeT )sizeof(zztv___0->tv_usec));
10218         } else {   10218         } else {
10219     10219  
10220         }   10220         }
10221         break;   10221         break;
10222       }   10222       }
10223       break;   10223       break;
10224     }   10224     }
10225   } else {   10225   } else {
10226     10226  
10227   }   10227   }
10228   return;   10228   return;
10229 }   10229 }
10230 }   10230 }
10231 void vgSysWrap_generic_sys_chroot_before(ThreadId tid ,   10231 void vgSysWrap_generic_sys_chroot_before(ThreadId tid ,
10232                                          SyscallArgLayout *layout ,   10232                                          SyscallArgLayout *layout ,
10233                                          SyscallArgs *arrghs ,   10233                                          SyscallArgs *arrghs ,
10234                                          SyscallStatus *status , UWord *flags )   10234                                          SyscallStatus *status , UWord *flags )
10235 {   10235 {
10236   Int here ;   10236   Int here ;
10237   long tmp ;   10237   long tmp ;
10238   long tmp___0 ;   10238   long tmp___0 ;
10239     10239  
10240   {   10240   {
10241   if (vgPlain_clo_trace_syscalls) {   10241   if (vgPlain_clo_trace_syscalls) {
10242     vgPlain_printf("sys_chroot ( %#lx )", arrghs->arg1);   10242     vgPlain_printf("sys_chroot ( %#lx )", arrghs->arg1);
10243   } else {   10243   } else {
10244     10244  
10245   }   10245   }
10246   if (vgPlain_tdict.track_pre_reg_read) {   10246   if (vgPlain_tdict.track_pre_reg_read) {
10247     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10247     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10248                                           (Char *)"(syscallno)",   10248                                           (Char *)"(syscallno)",
10249                                           (PtrdiffT )layout->o_sysno,   10249                                           (PtrdiffT )layout->o_sysno,
10250                                           (SizeT )sizeof(UWord ));   10250                                           (SizeT )sizeof(UWord ));
10251     while (1) {   10251     while (1) {
10252       here = layout->o_arg1;   10252       here = layout->o_arg1;
10253       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   10253       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
10254                              1L);   10254                              1L);
10255       if (tmp) {   10255       if (tmp) {
10256     10256  
10257       } else {   10257       } else {
10258         vgPlain_assert_fail((Bool )1,   10258         vgPlain_assert_fail((Bool )1,
10259                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   10259                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
10260                             (Char const   *)"m_syswrap/syswrap-generic.c", 2303,   10260                             (Char const   *)"m_syswrap/syswrap-generic.c", 2303,
10261                             (Char const   *)"vgSysWrap_generic_sys_chroot_before",   10261                             (Char const   *)"vgSysWrap_generic_sys_chroot_before",
10262                             "");   10262                             "");
10263       }   10263       }
10264       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   10264       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
10265       if (tmp___0) {   10265       if (tmp___0) {
10266     10266  
10267       } else {   10267       } else {
10268         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10268         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10269                             (Char const   *)"m_syswrap/syswrap-generic.c", 2303,   10269                             (Char const   *)"m_syswrap/syswrap-generic.c", 2303,
10270                             (Char const   *)"vgSysWrap_generic_sys_chroot_before",   10270                             (Char const   *)"vgSysWrap_generic_sys_chroot_before",
10271                             "");   10271                             "");
10272       }   10272       }
10273       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10273       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10274                                             (Char *)"chroot(path)",   10274                                             (Char *)"chroot(path)",
10275                                             (PtrdiffT )here,   10275                                             (PtrdiffT )here,
10276                                             (SizeT )sizeof(char const   *));   10276                                             (SizeT )sizeof(char const   *));
10277       break;   10277       break;
10278     }   10278     }
10279   } else {   10279   } else {
10280     10280  
10281   }   10281   }
10282   while (1) {   10282   while (1) {
10283     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   10283     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
10284       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   10284       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
10285                                                    (Char *)"chroot(path)",   10285                                                    (Char *)"chroot(path)",
10286                                                    arrghs->arg1);   10286                                                    arrghs->arg1);
10287     } else {   10287     } else {
10288     10288  
10289     }   10289     }
10290     break;   10290     break;
10291   }   10291   }
10292   return;   10292   return;
10293 }   10293 }
10294 }   10294 }
10295 void vgSysWrap_generic_sys_madvise_before(ThreadId tid ,   10295 void vgSysWrap_generic_sys_madvise_before(ThreadId tid ,
10296                                           SyscallArgLayout *layout ,   10296                                           SyscallArgLayout *layout ,
10297                                           SyscallArgs *arrghs ,   10297                                           SyscallArgs *arrghs ,
10298                                           SyscallStatus *status , UWord *flags )   10298                                           SyscallStatus *status , UWord *flags )
10299 {   10299 {
10300   Int here ;   10300   Int here ;
10301   long tmp ;   10301   long tmp ;
10302   long tmp___0 ;   10302   long tmp___0 ;
10303   Int here___0 ;   10303   Int here___0 ;
10304   long tmp___1 ;   10304   long tmp___1 ;
10305   long tmp___2 ;   10305   long tmp___2 ;
10306   Int here___1 ;   10306   Int here___1 ;
10307   long tmp___3 ;   10307   long tmp___3 ;
10308   long tmp___4 ;   10308   long tmp___4 ;
10309     10309  
10310   {   10310   {
10311   *flags |= (unsigned long )(1 << 1);   10311   *flags |= (unsigned long )(1 << 1);
10312   if (vgPlain_clo_trace_syscalls) {   10312   if (vgPlain_clo_trace_syscalls) {
10313     vgPlain_printf("sys_madvise ( %#lx, %llu, %ld )", arrghs->arg1,   10313     vgPlain_printf("sys_madvise ( %#lx, %llu, %ld )", arrghs->arg1,
10314                    (ULong )arrghs->arg2, arrghs->arg3);   10314                    (ULong )arrghs->arg2, arrghs->arg3);
10315   } else {   10315   } else {
10316     10316  
10317   }   10317   }
10318   if (vgPlain_tdict.track_pre_reg_read) {   10318   if (vgPlain_tdict.track_pre_reg_read) {
10319     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10319     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10320                                           (Char *)"(syscallno)",   10320                                           (Char *)"(syscallno)",
10321                                           (PtrdiffT )layout->o_sysno,   10321                                           (PtrdiffT )layout->o_sysno,
10322                                           (SizeT )sizeof(UWord ));   10322                                           (SizeT )sizeof(UWord ));
10323     while (1) {   10323     while (1) {
10324       here = layout->o_arg1;   10324       here = layout->o_arg1;
10325       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10325       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10326                              1L);   10326                              1L);
10327       if (tmp) {   10327       if (tmp) {
10328     10328  
10329       } else {   10329       } else {
10330         vgPlain_assert_fail((Bool )1,   10330         vgPlain_assert_fail((Bool )1,
10331                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10331                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10332                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,   10332                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,
10333                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",   10333                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",
10334                             "");   10334                             "");
10335       }   10335       }
10336       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   10336       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
10337       if (tmp___0) {   10337       if (tmp___0) {
10338     10338  
10339       } else {   10339       } else {
10340         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10340         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10341                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,   10341                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,
10342                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",   10342                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",
10343                             "");   10343                             "");
10344       }   10344       }
10345       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10345       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10346                                             (Char *)"madvise(start)",   10346                                             (Char *)"madvise(start)",
10347                                             (PtrdiffT )here,   10347                                             (PtrdiffT )here,
10348                                             (SizeT )sizeof(unsigned long ));   10348                                             (SizeT )sizeof(unsigned long ));
10349       break;   10349       break;
10350     }   10350     }
10351     while (1) {   10351     while (1) {
10352       here___0 = layout->o_arg2;   10352       here___0 = layout->o_arg2;
10353       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   10353       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
10354                                  1L);   10354                                  1L);
10355       if (tmp___1) {   10355       if (tmp___1) {
10356     10356  
10357       } else {   10357       } else {
10358         vgPlain_assert_fail((Bool )1,   10358         vgPlain_assert_fail((Bool )1,
10359                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   10359                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
10360                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,   10360                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,
10361                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",   10361                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",
10362                             "");   10362                             "");
10363       }   10363       }
10364       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   10364       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
10365       if (tmp___2) {   10365       if (tmp___2) {
10366     10366  
10367       } else {   10367       } else {
10368         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10368         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10369                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,   10369                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,
10370                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",   10370                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",
10371                             "");   10371                             "");
10372       }   10372       }
10373       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10373       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10374                                             (Char *)"madvise(length)",   10374                                             (Char *)"madvise(length)",
10375                                             (PtrdiffT )here___0,   10375                                             (PtrdiffT )here___0,
10376                                             (SizeT )sizeof(vki_size_t ));   10376                                             (SizeT )sizeof(vki_size_t ));
10377       break;   10377       break;
10378     }   10378     }
10379     while (1) {   10379     while (1) {
10380       here___1 = layout->o_arg3;   10380       here___1 = layout->o_arg3;
10381       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   10381       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
10382                                  1L);   10382                                  1L);
10383       if (tmp___3) {   10383       if (tmp___3) {
10384     10384  
10385       } else {   10385       } else {
10386         vgPlain_assert_fail((Bool )1,   10386         vgPlain_assert_fail((Bool )1,
10387                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   10387                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
10388                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,   10388                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,
10389                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",   10389                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",
10390                             "");   10390                             "");
10391       }   10391       }
10392       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   10392       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
10393       if (tmp___4) {   10393       if (tmp___4) {
10394     10394  
10395       } else {   10395       } else {
10396         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10396         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10397                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,   10397                             (Char const   *)"m_syswrap/syswrap-generic.c", 2312,
10398                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",   10398                             (Char const   *)"vgSysWrap_generic_sys_madvise_before",
10399                             "");   10399                             "");
10400       }   10400       }
10401       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10401       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10402                                             (Char *)"madvise(advice)",   10402                                             (Char *)"madvise(advice)",
10403                                             (PtrdiffT )here___1,   10403                                             (PtrdiffT )here___1,
10404                                             (SizeT )sizeof(int ));   10404                                             (SizeT )sizeof(int ));
10405       break;   10405       break;
10406     }   10406     }
10407   } else {   10407   } else {
10408     10408  
10409   }   10409   }
10410   return;   10410   return;
10411 }   10411 }
10412 }   10412 }
10413 void vgSysWrap_generic_sys_mremap_before(ThreadId tid ,   10413 void vgSysWrap_generic_sys_mremap_before(ThreadId tid ,
10414                                          SyscallArgLayout *layout ,   10414                                          SyscallArgLayout *layout ,
10415                                          SyscallArgs *arrghs ,   10415                                          SyscallArgs *arrghs ,
10416                                          SyscallStatus *status , UWord *flags )   10416                                          SyscallStatus *status , UWord *flags )
10417 {   10417 {
10418   Int here ;   10418   Int here ;
10419   long tmp ;   10419   long tmp ;
10420   long tmp___0 ;   10420   long tmp___0 ;
10421   Int here___0 ;   10421   Int here___0 ;
10422   long tmp___1 ;   10422   long tmp___1 ;
10423   long tmp___2 ;   10423   long tmp___2 ;
10424   Int here___1 ;   10424   Int here___1 ;
10425   long tmp___3 ;   10425   long tmp___3 ;
10426   long tmp___4 ;   10426   long tmp___4 ;
10427   Int here___2 ;   10427   Int here___2 ;
10428   long tmp___5 ;   10428   long tmp___5 ;
10429   long tmp___6 ;   10429   long tmp___6 ;
10430   Int here___3 ;   10430   Int here___3 ;
10431   long tmp___7 ;   10431   long tmp___7 ;
10432   long tmp___8 ;   10432   long tmp___8 ;
10433   Int here___4 ;   10433   Int here___4 ;
10434   long tmp___9 ;   10434   long tmp___9 ;
10435   long tmp___10 ;   10435   long tmp___10 ;
10436   Int here___5 ;   10436   Int here___5 ;
10437   long tmp___11 ;   10437   long tmp___11 ;
10438   long tmp___12 ;   10438   long tmp___12 ;
10439   Int here___6 ;   10439   Int here___6 ;
10440   long tmp___13 ;   10440   long tmp___13 ;
10441   long tmp___14 ;   10441   long tmp___14 ;
10442   Int here___7 ;   10442   Int here___7 ;
10443   long tmp___15 ;   10443   long tmp___15 ;
10444   long tmp___16 ;   10444   long tmp___16 ;
10445     10445  
10446   {   10446   {
10447   if (arrghs->arg4 & 2UL) {   10447   if (arrghs->arg4 & 2UL) {
10448     if (vgPlain_clo_trace_syscalls) {   10448     if (vgPlain_clo_trace_syscalls) {
10449       vgPlain_printf("sys_mremap ( %#lx, %llu, %ld, 0x%lx, %#lx )",   10449       vgPlain_printf("sys_mremap ( %#lx, %llu, %ld, 0x%lx, %#lx )",
10450                      arrghs->arg1, (ULong )arrghs->arg2, arrghs->arg3,   10450                      arrghs->arg1, (ULong )arrghs->arg2, arrghs->arg3,
10451                      arrghs->arg4, arrghs->arg5);   10451                      arrghs->arg4, arrghs->arg5);
10452     } else {   10452     } else {
10453     10453  
10454     }   10454     }
10455     if (vgPlain_tdict.track_pre_reg_read) {   10455     if (vgPlain_tdict.track_pre_reg_read) {
10456       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10456       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10457                                             (Char *)"(syscallno)",   10457                                             (Char *)"(syscallno)",
10458                                             (PtrdiffT )layout->o_sysno,   10458                                             (PtrdiffT )layout->o_sysno,
10459                                             (SizeT )sizeof(UWord ));   10459                                             (SizeT )sizeof(UWord ));
10460       while (1) {   10460       while (1) {
10461         here = layout->o_arg1;   10461         here = layout->o_arg1;
10462         tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10462         tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10463                                1L);   10463                                1L);
10464         if (tmp) {   10464         if (tmp) {
10465     10465  
10466         } else {   10466         } else {
10467           vgPlain_assert_fail((Bool )1,   10467           vgPlain_assert_fail((Bool )1,
10468                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10468                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10469                               (Char const   *)"m_syswrap/syswrap-generic.c",   10469                               (Char const   *)"m_syswrap/syswrap-generic.c",
10470                               2326,   10470                               2326,
10471                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10471                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10472                               "");   10472                               "");
10473         }   10473         }
10474         tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   10474         tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
10475         if (tmp___0) {   10475         if (tmp___0) {
10476     10476  
10477         } else {   10477         } else {
10478           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10478           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10479                               (Char const   *)"m_syswrap/syswrap-generic.c",   10479                               (Char const   *)"m_syswrap/syswrap-generic.c",
10480                               2326,   10480                               2326,
10481                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10481                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10482                               "");   10482                               "");
10483         }   10483         }
10484         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10484         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10485                                               (Char *)"mremap(old_addr)",   10485                                               (Char *)"mremap(old_addr)",
10486                                               (PtrdiffT )here,   10486                                               (PtrdiffT )here,
10487                                               (SizeT )sizeof(unsigned long ));   10487                                               (SizeT )sizeof(unsigned long ));
10488         break;   10488         break;
10489       }   10489       }
10490       while (1) {   10490       while (1) {
10491         here___0 = layout->o_arg2;   10491         here___0 = layout->o_arg2;
10492         tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10492         tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10493                                    1L);   10493                                    1L);
10494         if (tmp___1) {   10494         if (tmp___1) {
10495     10495  
10496         } else {   10496         } else {
10497           vgPlain_assert_fail((Bool )1,   10497           vgPlain_assert_fail((Bool )1,
10498                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10498                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10499                               (Char const   *)"m_syswrap/syswrap-generic.c",   10499                               (Char const   *)"m_syswrap/syswrap-generic.c",
10500                               2326,   10500                               2326,
10501                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10501                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10502                               "");   10502                               "");
10503         }   10503         }
10504         tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   10504         tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
10505         if (tmp___2) {   10505         if (tmp___2) {
10506     10506  
10507         } else {   10507         } else {
10508           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10508           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10509                               (Char const   *)"m_syswrap/syswrap-generic.c",   10509                               (Char const   *)"m_syswrap/syswrap-generic.c",
10510                               2326,   10510                               2326,
10511                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10511                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10512                               "");   10512                               "");
10513         }   10513         }
10514         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10514         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10515                                               (Char *)"mremap(old_size)",   10515                                               (Char *)"mremap(old_size)",
10516                                               (PtrdiffT )here___0,   10516                                               (PtrdiffT )here___0,
10517                                               (SizeT )sizeof(unsigned long ));   10517                                               (SizeT )sizeof(unsigned long ));
10518         break;   10518         break;
10519       }   10519       }
10520       while (1) {   10520       while (1) {
10521         here___1 = layout->o_arg3;   10521         here___1 = layout->o_arg3;
10522         tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10522         tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10523                                    1L);   10523                                    1L);
10524         if (tmp___3) {   10524         if (tmp___3) {
10525     10525  
10526         } else {   10526         } else {
10527           vgPlain_assert_fail((Bool )1,   10527           vgPlain_assert_fail((Bool )1,
10528                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10528                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10529                               (Char const   *)"m_syswrap/syswrap-generic.c",   10529                               (Char const   *)"m_syswrap/syswrap-generic.c",
10530                               2326,   10530                               2326,
10531                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10531                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10532                               "");   10532                               "");
10533         }   10533         }
10534         tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   10534         tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
10535         if (tmp___4) {   10535         if (tmp___4) {
10536     10536  
10537         } else {   10537         } else {
10538           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10538           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10539                               (Char const   *)"m_syswrap/syswrap-generic.c",   10539                               (Char const   *)"m_syswrap/syswrap-generic.c",
10540                               2326,   10540                               2326,
10541                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10541                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10542                               "");   10542                               "");
10543         }   10543         }
10544         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10544         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10545                                               (Char *)"mremap(new_size)",   10545                                               (Char *)"mremap(new_size)",
10546                                               (PtrdiffT )here___1,   10546                                               (PtrdiffT )here___1,
10547                                               (SizeT )sizeof(unsigned long ));   10547                                               (SizeT )sizeof(unsigned long ));
10548         break;   10548         break;
10549       }   10549       }
10550       while (1) {   10550       while (1) {
10551         here___2 = layout->o_arg4;   10551         here___2 = layout->o_arg4;
10552         tmp___5 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10552         tmp___5 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10553                                    1L);   10553                                    1L);
10554         if (tmp___5) {   10554         if (tmp___5) {
10555     10555  
10556         } else {   10556         } else {
10557           vgPlain_assert_fail((Bool )1,   10557           vgPlain_assert_fail((Bool )1,
10558                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10558                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10559                               (Char const   *)"m_syswrap/syswrap-generic.c",   10559                               (Char const   *)"m_syswrap/syswrap-generic.c",
10560                               2326,   10560                               2326,
10561                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10561                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10562                               "");   10562                               "");
10563         }   10563         }
10564         tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   10564         tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
10565         if (tmp___6) {   10565         if (tmp___6) {
10566     10566  
10567         } else {   10567         } else {
10568           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10568           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10569                               (Char const   *)"m_syswrap/syswrap-generic.c",   10569                               (Char const   *)"m_syswrap/syswrap-generic.c",
10570                               2326,   10570                               2326,
10571                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10571                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10572                               "");   10572                               "");
10573         }   10573         }
10574         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10574         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10575                                               (Char *)"mremap(flags)",   10575                                               (Char *)"mremap(flags)",
10576                                               (PtrdiffT )here___2,   10576                                               (PtrdiffT )here___2,
10577                                               (SizeT )sizeof(unsigned long ));   10577                                               (SizeT )sizeof(unsigned long ));
10578         break;   10578         break;
10579       }   10579       }
10580       while (1) {   10580       while (1) {
10581         here___3 = layout->o_arg5;   10581         here___3 = layout->o_arg5;
10582         tmp___7 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10582         tmp___7 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10583                                    1L);   10583                                    1L);
10584         if (tmp___7) {   10584         if (tmp___7) {
10585     10585  
10586         } else {   10586         } else {
10587           vgPlain_assert_fail((Bool )1,   10587           vgPlain_assert_fail((Bool )1,
10588                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10588                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10589                               (Char const   *)"m_syswrap/syswrap-generic.c",   10589                               (Char const   *)"m_syswrap/syswrap-generic.c",
10590                               2326,   10590                               2326,
10591                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10591                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10592                               "");   10592                               "");
10593         }   10593         }
10594         tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);   10594         tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);
10595         if (tmp___8) {   10595         if (tmp___8) {
10596     10596  
10597         } else {   10597         } else {
10598           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10598           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10599                               (Char const   *)"m_syswrap/syswrap-generic.c",   10599                               (Char const   *)"m_syswrap/syswrap-generic.c",
10600                               2326,   10600                               2326,
10601                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10601                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10602                               "");   10602                               "");
10603         }   10603         }
10604         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10604         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10605                                               (Char *)"mremap(new_addr)",   10605                                               (Char *)"mremap(new_addr)",
10606                                               (PtrdiffT )here___3,   10606                                               (PtrdiffT )here___3,
10607                                               (SizeT )sizeof(unsigned long ));   10607                                               (SizeT )sizeof(unsigned long ));
10608         break;   10608         break;
10609       }   10609       }
10610     } else {   10610     } else {
10611     10611  
10612     }   10612     }
10613   } else {   10613   } else {
10614     if (vgPlain_clo_trace_syscalls) {   10614     if (vgPlain_clo_trace_syscalls) {
10615       vgPlain_printf("sys_mremap ( %#lx, %llu, %ld, 0x%lx )", arrghs->arg1,   10615       vgPlain_printf("sys_mremap ( %#lx, %llu, %ld, 0x%lx )", arrghs->arg1,
10616                      (ULong )arrghs->arg2, arrghs->arg3, arrghs->arg4);   10616                      (ULong )arrghs->arg2, arrghs->arg3, arrghs->arg4);
10617     } else {   10617     } else {
10618     10618  
10619     }   10619     }
10620     if (vgPlain_tdict.track_pre_reg_read) {   10620     if (vgPlain_tdict.track_pre_reg_read) {
10621       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10621       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10622                                             (Char *)"(syscallno)",   10622                                             (Char *)"(syscallno)",
10623                                             (PtrdiffT )layout->o_sysno,   10623                                             (PtrdiffT )layout->o_sysno,
10624                                             (SizeT )sizeof(UWord ));   10624                                             (SizeT )sizeof(UWord ));
10625       while (1) {   10625       while (1) {
10626         here___4 = layout->o_arg1;   10626         here___4 = layout->o_arg1;
10627         tmp___9 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10627         tmp___9 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10628                                    1L);   10628                                    1L);
10629         if (tmp___9) {   10629         if (tmp___9) {
10630     10630  
10631         } else {   10631         } else {
10632           vgPlain_assert_fail((Bool )1,   10632           vgPlain_assert_fail((Bool )1,
10633                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10633                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10634                               (Char const   *)"m_syswrap/syswrap-generic.c",   10634                               (Char const   *)"m_syswrap/syswrap-generic.c",
10635                               2332,   10635                               2332,
10636                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10636                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10637                               "");   10637                               "");
10638         }   10638         }
10639         tmp___10 = __builtin_expect((long )(! (! (here___4 >= 0))), 1L);   10639         tmp___10 = __builtin_expect((long )(! (! (here___4 >= 0))), 1L);
10640         if (tmp___10) {   10640         if (tmp___10) {
10641     10641  
10642         } else {   10642         } else {
10643           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10643           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10644                               (Char const   *)"m_syswrap/syswrap-generic.c",   10644                               (Char const   *)"m_syswrap/syswrap-generic.c",
10645                               2332,   10645                               2332,
10646                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10646                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10647                               "");   10647                               "");
10648         }   10648         }
10649         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10649         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10650                                               (Char *)"mremap(old_addr)",   10650                                               (Char *)"mremap(old_addr)",
10651                                               (PtrdiffT )here___4,   10651                                               (PtrdiffT )here___4,
10652                                               (SizeT )sizeof(unsigned long ));   10652                                               (SizeT )sizeof(unsigned long ));
10653         break;   10653         break;
10654       }   10654       }
10655       while (1) {   10655       while (1) {
10656         here___5 = layout->o_arg2;   10656         here___5 = layout->o_arg2;
10657         tmp___11 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10657         tmp___11 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10658                                     1L);   10658                                     1L);
10659         if (tmp___11) {   10659         if (tmp___11) {
10660     10660  
10661         } else {   10661         } else {
10662           vgPlain_assert_fail((Bool )1,   10662           vgPlain_assert_fail((Bool )1,
10663                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10663                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10664                               (Char const   *)"m_syswrap/syswrap-generic.c",   10664                               (Char const   *)"m_syswrap/syswrap-generic.c",
10665                               2332,   10665                               2332,
10666                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10666                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10667                               "");   10667                               "");
10668         }   10668         }
10669         tmp___12 = __builtin_expect((long )(! (! (here___5 >= 0))), 1L);   10669         tmp___12 = __builtin_expect((long )(! (! (here___5 >= 0))), 1L);
10670         if (tmp___12) {   10670         if (tmp___12) {
10671     10671  
10672         } else {   10672         } else {
10673           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10673           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10674                               (Char const   *)"m_syswrap/syswrap-generic.c",   10674                               (Char const   *)"m_syswrap/syswrap-generic.c",
10675                               2332,   10675                               2332,
10676                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10676                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10677                               "");   10677                               "");
10678         }   10678         }
10679         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10679         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10680                                               (Char *)"mremap(old_size)",   10680                                               (Char *)"mremap(old_size)",
10681                                               (PtrdiffT )here___5,   10681                                               (PtrdiffT )here___5,
10682                                               (SizeT )sizeof(unsigned long ));   10682                                               (SizeT )sizeof(unsigned long ));
10683         break;   10683         break;
10684       }   10684       }
10685       while (1) {   10685       while (1) {
10686         here___6 = layout->o_arg3;   10686         here___6 = layout->o_arg3;
10687         tmp___13 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10687         tmp___13 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10688                                     1L);   10688                                     1L);
10689         if (tmp___13) {   10689         if (tmp___13) {
10690     10690  
10691         } else {   10691         } else {
10692           vgPlain_assert_fail((Bool )1,   10692           vgPlain_assert_fail((Bool )1,
10693                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10693                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10694                               (Char const   *)"m_syswrap/syswrap-generic.c",   10694                               (Char const   *)"m_syswrap/syswrap-generic.c",
10695                               2332,   10695                               2332,
10696                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10696                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10697                               "");   10697                               "");
10698         }   10698         }
10699         tmp___14 = __builtin_expect((long )(! (! (here___6 >= 0))), 1L);   10699         tmp___14 = __builtin_expect((long )(! (! (here___6 >= 0))), 1L);
10700         if (tmp___14) {   10700         if (tmp___14) {
10701     10701  
10702         } else {   10702         } else {
10703           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10703           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10704                               (Char const   *)"m_syswrap/syswrap-generic.c",   10704                               (Char const   *)"m_syswrap/syswrap-generic.c",
10705                               2332,   10705                               2332,
10706                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10706                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10707                               "");   10707                               "");
10708         }   10708         }
10709         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10709         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10710                                               (Char *)"mremap(new_size)",   10710                                               (Char *)"mremap(new_size)",
10711                                               (PtrdiffT )here___6,   10711                                               (PtrdiffT )here___6,
10712                                               (SizeT )sizeof(unsigned long ));   10712                                               (SizeT )sizeof(unsigned long ));
10713         break;   10713         break;
10714       }   10714       }
10715       while (1) {   10715       while (1) {
10716         here___7 = layout->o_arg4;   10716         here___7 = layout->o_arg4;
10717         tmp___15 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10717         tmp___15 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10718                                     1L);   10718                                     1L);
10719         if (tmp___15) {   10719         if (tmp___15) {
10720     10720  
10721         } else {   10721         } else {
10722           vgPlain_assert_fail((Bool )1,   10722           vgPlain_assert_fail((Bool )1,
10723                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10723                               (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10724                               (Char const   *)"m_syswrap/syswrap-generic.c",   10724                               (Char const   *)"m_syswrap/syswrap-generic.c",
10725                               2332,   10725                               2332,
10726                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10726                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10727                               "");   10727                               "");
10728         }   10728         }
10729         tmp___16 = __builtin_expect((long )(! (! (here___7 >= 0))), 1L);   10729         tmp___16 = __builtin_expect((long )(! (! (here___7 >= 0))), 1L);
10730         if (tmp___16) {   10730         if (tmp___16) {
10731     10731  
10732         } else {   10732         } else {
10733           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10733           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10734                               (Char const   *)"m_syswrap/syswrap-generic.c",   10734                               (Char const   *)"m_syswrap/syswrap-generic.c",
10735                               2332,   10735                               2332,
10736                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",   10736                               (Char const   *)"vgSysWrap_generic_sys_mremap_before",
10737                               "");   10737                               "");
10738         }   10738         }
10739         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10739         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10740                                               (Char *)"mremap(flags)",   10740                                               (Char *)"mremap(flags)",
10741                                               (PtrdiffT )here___7,   10741                                               (PtrdiffT )here___7,
10742                                               (SizeT )sizeof(unsigned long ));   10742                                               (SizeT )sizeof(unsigned long ));
10743         break;   10743         break;
10744       }   10744       }
10745     } else {   10745     } else {
10746     10746  
10747     }   10747     }
10748   }   10748   }
10749   while (1) {   10749   while (1) {
10750     status->what = (enum __anonenum_what_133 )1;   10750     status->what = (enum __anonenum_what_133 )1;
10751     status->sres = do_mremap(arrghs->arg1, arrghs->arg2, arrghs->arg5,   10751     status->sres = do_mremap(arrghs->arg1, arrghs->arg2, arrghs->arg5,
10752                              arrghs->arg3, arrghs->arg4, tid);   10752                              arrghs->arg3, arrghs->arg4, tid);
10753     break;   10753     break;
10754   }   10754   }
10755   return;   10755   return;
10756 }   10756 }
10757 }   10757 }
10758 void vgSysWrap_generic_sys_nice_before(ThreadId tid , SyscallArgLayout *layout ,   10758 void vgSysWrap_generic_sys_nice_before(ThreadId tid , SyscallArgLayout *layout ,
10759                                        SyscallArgs *arrghs ,   10759                                        SyscallArgs *arrghs ,
10760                                        SyscallStatus *status , UWord *flags )   10760                                        SyscallStatus *status , UWord *flags )
10761 {   10761 {
10762   Int here ;   10762   Int here ;
10763   long tmp ;   10763   long tmp ;
10764   long tmp___0 ;   10764   long tmp___0 ;
10765     10765  
10766   {   10766   {
10767   if (vgPlain_clo_trace_syscalls) {   10767   if (vgPlain_clo_trace_syscalls) {
10768     vgPlain_printf("sys_nice ( %ld )", arrghs->arg1);   10768     vgPlain_printf("sys_nice ( %ld )", arrghs->arg1);
10769   } else {   10769   } else {
10770     10770  
10771   }   10771   }
10772   if (vgPlain_tdict.track_pre_reg_read) {   10772   if (vgPlain_tdict.track_pre_reg_read) {
10773     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10773     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10774                                           (Char *)"(syscallno)",   10774                                           (Char *)"(syscallno)",
10775                                           (PtrdiffT )layout->o_sysno,   10775                                           (PtrdiffT )layout->o_sysno,
10776                                           (SizeT )sizeof(UWord ));   10776                                           (SizeT )sizeof(UWord ));
10777     while (1) {   10777     while (1) {
10778       here = layout->o_arg1;   10778       here = layout->o_arg1;
10779       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   10779       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
10780       if (tmp) {   10780       if (tmp) {
10781     10781  
10782       } else {   10782       } else {
10783         vgPlain_assert_fail((Bool )1,   10783         vgPlain_assert_fail((Bool )1,
10784                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   10784                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
10785                             (Char const   *)"m_syswrap/syswrap-generic.c", 2343,   10785                             (Char const   *)"m_syswrap/syswrap-generic.c", 2343,
10786                             (Char const   *)"vgSysWrap_generic_sys_nice_before",   10786                             (Char const   *)"vgSysWrap_generic_sys_nice_before",
10787                             "");   10787                             "");
10788       }   10788       }
10789       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   10789       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
10790       if (tmp___0) {   10790       if (tmp___0) {
10791     10791  
10792       } else {   10792       } else {
10793         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10793         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10794                             (Char const   *)"m_syswrap/syswrap-generic.c", 2343,   10794                             (Char const   *)"m_syswrap/syswrap-generic.c", 2343,
10795                             (Char const   *)"vgSysWrap_generic_sys_nice_before",   10795                             (Char const   *)"vgSysWrap_generic_sys_nice_before",
10796                             "");   10796                             "");
10797       }   10797       }
10798       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10798       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10799                                             (Char *)"nice(inc)",   10799                                             (Char *)"nice(inc)",
10800                                             (PtrdiffT )here,   10800                                             (PtrdiffT )here,
10801                                             (SizeT )sizeof(int ));   10801                                             (SizeT )sizeof(int ));
10802       break;   10802       break;
10803     }   10803     }
10804   } else {   10804   } else {
10805     10805  
10806   }   10806   }
10807   return;   10807   return;
10808 }   10808 }
10809 }   10809 }
10810 void vgSysWrap_generic_sys_mlock_before(ThreadId tid ,   10810 void vgSysWrap_generic_sys_mlock_before(ThreadId tid ,
10811                                         SyscallArgLayout *layout ,   10811                                         SyscallArgLayout *layout ,
10812                                         SyscallArgs *arrghs ,   10812                                         SyscallArgs *arrghs ,
10813                                         SyscallStatus *status , UWord *flags )   10813                                         SyscallStatus *status , UWord *flags )
10814 {   10814 {
10815   Int here ;   10815   Int here ;
10816   long tmp ;   10816   long tmp ;
10817   long tmp___0 ;   10817   long tmp___0 ;
10818   Int here___0 ;   10818   Int here___0 ;
10819   long tmp___1 ;   10819   long tmp___1 ;
10820   long tmp___2 ;   10820   long tmp___2 ;
10821     10821  
10822   {   10822   {
10823   *flags |= (unsigned long )(1 << 1);   10823   *flags |= (unsigned long )(1 << 1);
10824   if (vgPlain_clo_trace_syscalls) {   10824   if (vgPlain_clo_trace_syscalls) {
10825     vgPlain_printf("sys_mlock ( %#lx, %llu )", arrghs->arg1,   10825     vgPlain_printf("sys_mlock ( %#lx, %llu )", arrghs->arg1,
10826                    (ULong )arrghs->arg2);   10826                    (ULong )arrghs->arg2);
10827   } else {   10827   } else {
10828     10828  
10829   }   10829   }
10830   if (vgPlain_tdict.track_pre_reg_read) {   10830   if (vgPlain_tdict.track_pre_reg_read) {
10831     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10831     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10832                                           (Char *)"(syscallno)",   10832                                           (Char *)"(syscallno)",
10833                                           (PtrdiffT )layout->o_sysno,   10833                                           (PtrdiffT )layout->o_sysno,
10834                                           (SizeT )sizeof(UWord ));   10834                                           (SizeT )sizeof(UWord ));
10835     while (1) {   10835     while (1) {
10836       here = layout->o_arg1;   10836       here = layout->o_arg1;
10837       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10837       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10838                              1L);   10838                              1L);
10839       if (tmp) {   10839       if (tmp) {
10840     10840  
10841       } else {   10841       } else {
10842         vgPlain_assert_fail((Bool )1,   10842         vgPlain_assert_fail((Bool )1,
10843                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10843                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10844                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,   10844                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,
10845                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",   10845                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",
10846                             "");   10846                             "");
10847       }   10847       }
10848       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   10848       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
10849       if (tmp___0) {   10849       if (tmp___0) {
10850     10850  
10851       } else {   10851       } else {
10852         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10852         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10853                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,   10853                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,
10854                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",   10854                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",
10855                             "");   10855                             "");
10856       }   10856       }
10857       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10857       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10858                                             (Char *)"mlock(addr)",   10858                                             (Char *)"mlock(addr)",
10859                                             (PtrdiffT )here,   10859                                             (PtrdiffT )here,
10860                                             (SizeT )sizeof(unsigned long ));   10860                                             (SizeT )sizeof(unsigned long ));
10861       break;   10861       break;
10862     }   10862     }
10863     while (1) {   10863     while (1) {
10864       here___0 = layout->o_arg2;   10864       here___0 = layout->o_arg2;
10865       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   10865       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
10866                                  1L);   10866                                  1L);
10867       if (tmp___1) {   10867       if (tmp___1) {
10868     10868  
10869       } else {   10869       } else {
10870         vgPlain_assert_fail((Bool )1,   10870         vgPlain_assert_fail((Bool )1,
10871                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   10871                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
10872                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,   10872                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,
10873                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",   10873                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",
10874                             "");   10874                             "");
10875       }   10875       }
10876       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   10876       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
10877       if (tmp___2) {   10877       if (tmp___2) {
10878     10878  
10879       } else {   10879       } else {
10880         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10880         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10881                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,   10881                             (Char const   *)"m_syswrap/syswrap-generic.c", 2350,
10882                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",   10882                             (Char const   *)"vgSysWrap_generic_sys_mlock_before",
10883                             "");   10883                             "");
10884       }   10884       }
10885       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10885       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10886                                             (Char *)"mlock(len)",   10886                                             (Char *)"mlock(len)",
10887                                             (PtrdiffT )here___0,   10887                                             (PtrdiffT )here___0,
10888                                             (SizeT )sizeof(vki_size_t ));   10888                                             (SizeT )sizeof(vki_size_t ));
10889       break;   10889       break;
10890     }   10890     }
10891   } else {   10891   } else {
10892     10892  
10893   }   10893   }
10894   return;   10894   return;
10895 }   10895 }
10896 }   10896 }
10897 void vgSysWrap_generic_sys_munlock_before(ThreadId tid ,   10897 void vgSysWrap_generic_sys_munlock_before(ThreadId tid ,
10898                                           SyscallArgLayout *layout ,   10898                                           SyscallArgLayout *layout ,
10899                                           SyscallArgs *arrghs ,   10899                                           SyscallArgs *arrghs ,
10900                                           SyscallStatus *status , UWord *flags )   10900                                           SyscallStatus *status , UWord *flags )
10901 {   10901 {
10902   Int here ;   10902   Int here ;
10903   long tmp ;   10903   long tmp ;
10904   long tmp___0 ;   10904   long tmp___0 ;
10905   Int here___0 ;   10905   Int here___0 ;
10906   long tmp___1 ;   10906   long tmp___1 ;
10907   long tmp___2 ;   10907   long tmp___2 ;
10908     10908  
10909   {   10909   {
10910   *flags |= (unsigned long )(1 << 1);   10910   *flags |= (unsigned long )(1 << 1);
10911   if (vgPlain_clo_trace_syscalls) {   10911   if (vgPlain_clo_trace_syscalls) {
10912     vgPlain_printf("sys_munlock ( %#lx, %llu )", arrghs->arg1,   10912     vgPlain_printf("sys_munlock ( %#lx, %llu )", arrghs->arg1,
10913                    (ULong )arrghs->arg2);   10913                    (ULong )arrghs->arg2);
10914   } else {   10914   } else {
10915     10915  
10916   }   10916   }
10917   if (vgPlain_tdict.track_pre_reg_read) {   10917   if (vgPlain_tdict.track_pre_reg_read) {
10918     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10918     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10919                                           (Char *)"(syscallno)",   10919                                           (Char *)"(syscallno)",
10920                                           (PtrdiffT )layout->o_sysno,   10920                                           (PtrdiffT )layout->o_sysno,
10921                                           (SizeT )sizeof(UWord ));   10921                                           (SizeT )sizeof(UWord ));
10922     while (1) {   10922     while (1) {
10923       here = layout->o_arg1;   10923       here = layout->o_arg1;
10924       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   10924       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
10925                              1L);   10925                              1L);
10926       if (tmp) {   10926       if (tmp) {
10927     10927  
10928       } else {   10928       } else {
10929         vgPlain_assert_fail((Bool )1,   10929         vgPlain_assert_fail((Bool )1,
10930                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   10930                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
10931                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,   10931                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,
10932                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",   10932                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",
10933                             "");   10933                             "");
10934       }   10934       }
10935       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   10935       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
10936       if (tmp___0) {   10936       if (tmp___0) {
10937     10937  
10938       } else {   10938       } else {
10939         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10939         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10940                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,   10940                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,
10941                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",   10941                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",
10942                             "");   10942                             "");
10943       }   10943       }
10944       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10944       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10945                                             (Char *)"munlock(addr)",   10945                                             (Char *)"munlock(addr)",
10946                                             (PtrdiffT )here,   10946                                             (PtrdiffT )here,
10947                                             (SizeT )sizeof(unsigned long ));   10947                                             (SizeT )sizeof(unsigned long ));
10948       break;   10948       break;
10949     }   10949     }
10950     while (1) {   10950     while (1) {
10951       here___0 = layout->o_arg2;   10951       here___0 = layout->o_arg2;
10952       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   10952       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
10953                                  1L);   10953                                  1L);
10954       if (tmp___1) {   10954       if (tmp___1) {
10955     10955  
10956       } else {   10956       } else {
10957         vgPlain_assert_fail((Bool )1,   10957         vgPlain_assert_fail((Bool )1,
10958                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   10958                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
10959                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,   10959                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,
10960                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",   10960                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",
10961                             "");   10961                             "");
10962       }   10962       }
10963       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   10963       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
10964       if (tmp___2) {   10964       if (tmp___2) {
10965     10965  
10966       } else {   10966       } else {
10967         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   10967         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
10968                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,   10968                             (Char const   *)"m_syswrap/syswrap-generic.c", 2357,
10969                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",   10969                             (Char const   *)"vgSysWrap_generic_sys_munlock_before",
10970                             "");   10970                             "");
10971       }   10971       }
10972       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   10972       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
10973                                             (Char *)"munlock(len)",   10973                                             (Char *)"munlock(len)",
10974                                             (PtrdiffT )here___0,   10974                                             (PtrdiffT )here___0,
10975                                             (SizeT )sizeof(vki_size_t ));   10975                                             (SizeT )sizeof(vki_size_t ));
10976       break;   10976       break;
10977     }   10977     }
10978   } else {   10978   } else {
10979     10979  
10980   }   10980   }
10981   return;   10981   return;
10982 }   10982 }
10983 }   10983 }
10984 void vgSysWrap_generic_sys_mlockall_before(ThreadId tid ,   10984 void vgSysWrap_generic_sys_mlockall_before(ThreadId tid ,
10985                                            SyscallArgLayout *layout ,   10985                                            SyscallArgLayout *layout ,
10986                                            SyscallArgs *arrghs ,   10986                                            SyscallArgs *arrghs ,
10987                                            SyscallStatus *status , UWord *flags )   10987                                            SyscallStatus *status , UWord *flags )
10988 {   10988 {
10989   Int here ;   10989   Int here ;
10990   long tmp ;   10990   long tmp ;
10991   long tmp___0 ;   10991   long tmp___0 ;
10992     10992  
10993   {   10993   {
10994   *flags |= (unsigned long )(1 << 1);   10994   *flags |= (unsigned long )(1 << 1);
10995   if (vgPlain_clo_trace_syscalls) {   10995   if (vgPlain_clo_trace_syscalls) {
10996     vgPlain_printf("sys_mlockall ( %lx )", arrghs->arg1);   10996     vgPlain_printf("sys_mlockall ( %lx )", arrghs->arg1);
10997   } else {   10997   } else {
10998     10998  
10999   }   10999   }
11000   if (vgPlain_tdict.track_pre_reg_read) {   11000   if (vgPlain_tdict.track_pre_reg_read) {
11001     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11001     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11002                                           (Char *)"(syscallno)",   11002                                           (Char *)"(syscallno)",
11003                                           (PtrdiffT )layout->o_sysno,   11003                                           (PtrdiffT )layout->o_sysno,
11004                                           (SizeT )sizeof(UWord ));   11004                                           (SizeT )sizeof(UWord ));
11005     while (1) {   11005     while (1) {
11006       here = layout->o_arg1;   11006       here = layout->o_arg1;
11007       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   11007       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
11008       if (tmp) {   11008       if (tmp) {
11009     11009  
11010       } else {   11010       } else {
11011         vgPlain_assert_fail((Bool )1,   11011         vgPlain_assert_fail((Bool )1,
11012                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   11012                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
11013                             (Char const   *)"m_syswrap/syswrap-generic.c", 2364,   11013                             (Char const   *)"m_syswrap/syswrap-generic.c", 2364,
11014                             (Char const   *)"vgSysWrap_generic_sys_mlockall_before",   11014                             (Char const   *)"vgSysWrap_generic_sys_mlockall_before",
11015                             "");   11015                             "");
11016       }   11016       }
11017       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11017       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11018       if (tmp___0) {   11018       if (tmp___0) {
11019     11019  
11020       } else {   11020       } else {
11021         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11021         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11022                             (Char const   *)"m_syswrap/syswrap-generic.c", 2364,   11022                             (Char const   *)"m_syswrap/syswrap-generic.c", 2364,
11023                             (Char const   *)"vgSysWrap_generic_sys_mlockall_before",   11023                             (Char const   *)"vgSysWrap_generic_sys_mlockall_before",
11024                             "");   11024                             "");
11025       }   11025       }
11026       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11026       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11027                                             (Char *)"mlockall(flags)",   11027                                             (Char *)"mlockall(flags)",
11028                                             (PtrdiffT )here,   11028                                             (PtrdiffT )here,
11029                                             (SizeT )sizeof(int ));   11029                                             (SizeT )sizeof(int ));
11030       break;   11030       break;
11031     }   11031     }
11032   } else {   11032   } else {
11033     11033  
11034   }   11034   }
11035   return;   11035   return;
11036 }   11036 }
11037 }   11037 }
11038 void vgSysWrap_generic_sys_setpriority_before(ThreadId tid ,   11038 void vgSysWrap_generic_sys_setpriority_before(ThreadId tid ,
11039                                               SyscallArgLayout *layout ,   11039                                               SyscallArgLayout *layout ,
11040                                               SyscallArgs *arrghs ,   11040                                               SyscallArgs *arrghs ,
11041                                               SyscallStatus *status ,   11041                                               SyscallStatus *status ,
11042                                               UWord *flags )   11042                                               UWord *flags )
11043 {   11043 {
11044   Int here ;   11044   Int here ;
11045   long tmp ;   11045   long tmp ;
11046   long tmp___0 ;   11046   long tmp___0 ;
11047   Int here___0 ;   11047   Int here___0 ;
11048   long tmp___1 ;   11048   long tmp___1 ;
11049   long tmp___2 ;   11049   long tmp___2 ;
11050   Int here___1 ;   11050   Int here___1 ;
11051   long tmp___3 ;   11051   long tmp___3 ;
11052   long tmp___4 ;   11052   long tmp___4 ;
11053     11053  
11054   {   11054   {
11055   if (vgPlain_clo_trace_syscalls) {   11055   if (vgPlain_clo_trace_syscalls) {
11056     vgPlain_printf("sys_setpriority ( %ld, %ld, %ld )", arrghs->arg1,   11056     vgPlain_printf("sys_setpriority ( %ld, %ld, %ld )", arrghs->arg1,
11057                    arrghs->arg2, arrghs->arg3);   11057                    arrghs->arg2, arrghs->arg3);
11058   } else {   11058   } else {
11059     11059  
11060   }   11060   }
11061   if (vgPlain_tdict.track_pre_reg_read) {   11061   if (vgPlain_tdict.track_pre_reg_read) {
11062     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11062     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11063                                           (Char *)"(syscallno)",   11063                                           (Char *)"(syscallno)",
11064                                           (PtrdiffT )layout->o_sysno,   11064                                           (PtrdiffT )layout->o_sysno,
11065                                           (SizeT )sizeof(UWord ));   11065                                           (SizeT )sizeof(UWord ));
11066     while (1) {   11066     while (1) {
11067       here = layout->o_arg1;   11067       here = layout->o_arg1;
11068       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   11068       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
11069       if (tmp) {   11069       if (tmp) {
11070     11070  
11071       } else {   11071       } else {
11072         vgPlain_assert_fail((Bool )1,   11072         vgPlain_assert_fail((Bool )1,
11073                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   11073                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
11074                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,   11074                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,
11075                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",   11075                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",
11076                             "");   11076                             "");
11077       }   11077       }
11078       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11078       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11079       if (tmp___0) {   11079       if (tmp___0) {
11080     11080  
11081       } else {   11081       } else {
11082         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11082         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11083                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,   11083                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,
11084                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",   11084                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",
11085                             "");   11085                             "");
11086       }   11086       }
11087       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11087       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11088                                             (Char *)"setpriority(which)",   11088                                             (Char *)"setpriority(which)",
11089                                             (PtrdiffT )here,   11089                                             (PtrdiffT )here,
11090                                             (SizeT )sizeof(int ));   11090                                             (SizeT )sizeof(int ));
11091       break;   11091       break;
11092     }   11092     }
11093     while (1) {   11093     while (1) {
11094       here___0 = layout->o_arg2;   11094       here___0 = layout->o_arg2;
11095       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   11095       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
11096                                  1L);   11096                                  1L);
11097       if (tmp___1) {   11097       if (tmp___1) {
11098     11098  
11099       } else {   11099       } else {
11100         vgPlain_assert_fail((Bool )1,   11100         vgPlain_assert_fail((Bool )1,
11101                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   11101                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
11102                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,   11102                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,
11103                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",   11103                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",
11104                             "");   11104                             "");
11105       }   11105       }
11106       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   11106       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
11107       if (tmp___2) {   11107       if (tmp___2) {
11108     11108  
11109       } else {   11109       } else {
11110         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11110         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11111                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,   11111                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,
11112                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",   11112                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",
11113                             "");   11113                             "");
11114       }   11114       }
11115       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11115       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11116                                             (Char *)"setpriority(who)",   11116                                             (Char *)"setpriority(who)",
11117                                             (PtrdiffT )here___0,   11117                                             (PtrdiffT )here___0,
11118                                             (SizeT )sizeof(int ));   11118                                             (SizeT )sizeof(int ));
11119       break;   11119       break;
11120     }   11120     }
11121     while (1) {   11121     while (1) {
11122       here___1 = layout->o_arg3;   11122       here___1 = layout->o_arg3;
11123       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   11123       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
11124                                  1L);   11124                                  1L);
11125       if (tmp___3) {   11125       if (tmp___3) {
11126     11126  
11127       } else {   11127       } else {
11128         vgPlain_assert_fail((Bool )1,   11128         vgPlain_assert_fail((Bool )1,
11129                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   11129                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
11130                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,   11130                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,
11131                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",   11131                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",
11132                             "");   11132                             "");
11133       }   11133       }
11134       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   11134       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
11135       if (tmp___4) {   11135       if (tmp___4) {
11136     11136  
11137       } else {   11137       } else {
11138         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11138         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11139                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,   11139                             (Char const   *)"m_syswrap/syswrap-generic.c", 2370,
11140                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",   11140                             (Char const   *)"vgSysWrap_generic_sys_setpriority_before",
11141                             "");   11141                             "");
11142       }   11142       }
11143       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11143       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11144                                             (Char *)"setpriority(prio)",   11144                                             (Char *)"setpriority(prio)",
11145                                             (PtrdiffT )here___1,   11145                                             (PtrdiffT )here___1,
11146                                             (SizeT )sizeof(int ));   11146                                             (SizeT )sizeof(int ));
11147       break;   11147       break;
11148     }   11148     }
11149   } else {   11149   } else {
11150     11150  
11151   }   11151   }
11152   return;   11152   return;
11153 }   11153 }
11154 }   11154 }
11155 void vgSysWrap_generic_sys_getpriority_before(ThreadId tid ,   11155 void vgSysWrap_generic_sys_getpriority_before(ThreadId tid ,
11156                                               SyscallArgLayout *layout ,   11156                                               SyscallArgLayout *layout ,
11157                                               SyscallArgs *arrghs ,   11157                                               SyscallArgs *arrghs ,
11158                                               SyscallStatus *status ,   11158                                               SyscallStatus *status ,
11159                                               UWord *flags )   11159                                               UWord *flags )
11160 {   11160 {
11161   Int here ;   11161   Int here ;
11162   long tmp ;   11162   long tmp ;
11163   long tmp___0 ;   11163   long tmp___0 ;
11164   Int here___0 ;   11164   Int here___0 ;
11165   long tmp___1 ;   11165   long tmp___1 ;
11166   long tmp___2 ;   11166   long tmp___2 ;
11167     11167  
11168   {   11168   {
11169   if (vgPlain_clo_trace_syscalls) {   11169   if (vgPlain_clo_trace_syscalls) {
11170     vgPlain_printf("sys_getpriority ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   11170     vgPlain_printf("sys_getpriority ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
11171   } else {   11171   } else {
11172     11172  
11173   }   11173   }
11174   if (vgPlain_tdict.track_pre_reg_read) {   11174   if (vgPlain_tdict.track_pre_reg_read) {
11175     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11175     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11176                                           (Char *)"(syscallno)",   11176                                           (Char *)"(syscallno)",
11177                                           (PtrdiffT )layout->o_sysno,   11177                                           (PtrdiffT )layout->o_sysno,
11178                                           (SizeT )sizeof(UWord ));   11178                                           (SizeT )sizeof(UWord ));
11179     while (1) {   11179     while (1) {
11180       here = layout->o_arg1;   11180       here = layout->o_arg1;
11181       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   11181       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
11182       if (tmp) {   11182       if (tmp) {
11183     11183  
11184       } else {   11184       } else {
11185         vgPlain_assert_fail((Bool )1,   11185         vgPlain_assert_fail((Bool )1,
11186                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   11186                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
11187                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,   11187                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,
11188                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",   11188                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",
11189                             "");   11189                             "");
11190       }   11190       }
11191       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11191       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11192       if (tmp___0) {   11192       if (tmp___0) {
11193     11193  
11194       } else {   11194       } else {
11195         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11195         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11196                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,   11196                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,
11197                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",   11197                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",
11198                             "");   11198                             "");
11199       }   11199       }
11200       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11200       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11201                                             (Char *)"getpriority(which)",   11201                                             (Char *)"getpriority(which)",
11202                                             (PtrdiffT )here,   11202                                             (PtrdiffT )here,
11203                                             (SizeT )sizeof(int ));   11203                                             (SizeT )sizeof(int ));
11204       break;   11204       break;
11205     }   11205     }
11206     while (1) {   11206     while (1) {
11207       here___0 = layout->o_arg2;   11207       here___0 = layout->o_arg2;
11208       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   11208       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
11209                                  1L);   11209                                  1L);
11210       if (tmp___1) {   11210       if (tmp___1) {
11211     11211  
11212       } else {   11212       } else {
11213         vgPlain_assert_fail((Bool )1,   11213         vgPlain_assert_fail((Bool )1,
11214                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   11214                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
11215                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,   11215                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,
11216                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",   11216                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",
11217                             "");   11217                             "");
11218       }   11218       }
11219       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   11219       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
11220       if (tmp___2) {   11220       if (tmp___2) {
11221     11221  
11222       } else {   11222       } else {
11223         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11223         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11224                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,   11224                             (Char const   *)"m_syswrap/syswrap-generic.c", 2376,
11225                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",   11225                             (Char const   *)"vgSysWrap_generic_sys_getpriority_before",
11226                             "");   11226                             "");
11227       }   11227       }
11228       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11228       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11229                                             (Char *)"getpriority(who)",   11229                                             (Char *)"getpriority(who)",
11230                                             (PtrdiffT )here___0,   11230                                             (PtrdiffT )here___0,
11231                                             (SizeT )sizeof(int ));   11231                                             (SizeT )sizeof(int ));
11232       break;   11232       break;
11233     }   11233     }
11234   } else {   11234   } else {
11235     11235  
11236   }   11236   }
11237   return;   11237   return;
11238 }   11238 }
11239 }   11239 }
11240 void vgSysWrap_generic_sys_pwrite64_before(ThreadId tid ,   11240 void vgSysWrap_generic_sys_pwrite64_before(ThreadId tid ,
11241                                            SyscallArgLayout *layout ,   11241                                            SyscallArgLayout *layout ,
11242                                            SyscallArgs *arrghs ,   11242                                            SyscallArgs *arrghs ,
11243                                            SyscallStatus *status , UWord *flags )   11243                                            SyscallStatus *status , UWord *flags )
11244 {   11244 {
11245   Int here ;   11245   Int here ;
11246   long tmp ;   11246   long tmp ;
11247   long tmp___0 ;   11247   long tmp___0 ;
11248   Int here___0 ;   11248   Int here___0 ;
11249   long tmp___1 ;   11249   long tmp___1 ;
11250   long tmp___2 ;   11250   long tmp___2 ;
11251   Int here___1 ;   11251   Int here___1 ;
11252   long tmp___3 ;   11252   long tmp___3 ;
11253   long tmp___4 ;   11253   long tmp___4 ;
11254   Int here___2 ;   11254   Int here___2 ;
11255   long tmp___5 ;   11255   long tmp___5 ;
11256   long tmp___6 ;   11256   long tmp___6 ;
11257   Int here___3 ;   11257   Int here___3 ;
11258   long tmp___7 ;   11258   long tmp___7 ;
11259   long tmp___8 ;   11259   long tmp___8 ;
11260     11260  
11261   {   11261   {
11262   *flags |= (unsigned long )(1 << 1);   11262   *flags |= (unsigned long )(1 << 1);
11263   if (vgPlain_clo_trace_syscalls) {   11263   if (vgPlain_clo_trace_syscalls) {
11264     vgPlain_printf("sys_pwrite64 ( %ld, %#lx, %llu, %lld )", arrghs->arg1,   11264     vgPlain_printf("sys_pwrite64 ( %ld, %#lx, %llu, %lld )", arrghs->arg1,
11265                    arrghs->arg2, (ULong )arrghs->arg3,   11265                    arrghs->arg2, (ULong )arrghs->arg3,
11266                    (ULong )arrghs->arg4 | ((ULong )arrghs->arg5 << 32));   11266                    (ULong )arrghs->arg4 | ((ULong )arrghs->arg5 << 32));
11267   } else {   11267   } else {
11268     11268  
11269   }   11269   }
11270   if (vgPlain_tdict.track_pre_reg_read) {   11270   if (vgPlain_tdict.track_pre_reg_read) {
11271     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11271     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11272                                           (Char *)"(syscallno)",   11272                                           (Char *)"(syscallno)",
11273                                           (PtrdiffT )layout->o_sysno,   11273                                           (PtrdiffT )layout->o_sysno,
11274                                           (SizeT )sizeof(UWord ));   11274                                           (SizeT )sizeof(UWord ));
11275     while (1) {   11275     while (1) {
11276       here = layout->o_arg1;   11276       here = layout->o_arg1;
11277       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   11277       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
11278                              1L);   11278                              1L);
11279       if (tmp) {   11279       if (tmp) {
11280     11280  
11281       } else {   11281       } else {
11282         vgPlain_assert_fail((Bool )1,   11282         vgPlain_assert_fail((Bool )1,
11283                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   11283                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
11284                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11284                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11285                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11285                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11286                             "");   11286                             "");
11287       }   11287       }
11288       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11288       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11289       if (tmp___0) {   11289       if (tmp___0) {
11290     11290  
11291       } else {   11291       } else {
11292         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11292         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11293                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11293                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11294                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11294                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11295                             "");   11295                             "");
11296       }   11296       }
11297       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11297       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11298                                             (Char *)"pwrite64(fd)",   11298                                             (Char *)"pwrite64(fd)",
11299                                             (PtrdiffT )here,   11299                                             (PtrdiffT )here,
11300                                             (SizeT )sizeof(unsigned int ));   11300                                             (SizeT )sizeof(unsigned int ));
11301       break;   11301       break;
11302     }   11302     }
11303     while (1) {   11303     while (1) {
11304       here___0 = layout->o_arg2;   11304       here___0 = layout->o_arg2;
11305       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   11305       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
11306                                  1L);   11306                                  1L);
11307       if (tmp___1) {   11307       if (tmp___1) {
11308     11308  
11309       } else {   11309       } else {
11310         vgPlain_assert_fail((Bool )1,   11310         vgPlain_assert_fail((Bool )1,
11311                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   11311                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
11312                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11312                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11313                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11313                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11314                             "");   11314                             "");
11315       }   11315       }
11316       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   11316       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
11317       if (tmp___2) {   11317       if (tmp___2) {
11318     11318  
11319       } else {   11319       } else {
11320         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11320         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11321                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11321                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11322                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11322                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11323                             "");   11323                             "");
11324       }   11324       }
11325       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11325       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11326                                             (Char *)"pwrite64(buf)",   11326                                             (Char *)"pwrite64(buf)",
11327                                             (PtrdiffT )here___0,   11327                                             (PtrdiffT )here___0,
11328                                             (SizeT )sizeof(char const   *));   11328                                             (SizeT )sizeof(char const   *));
11329       break;   11329       break;
11330     }   11330     }
11331     while (1) {   11331     while (1) {
11332       here___1 = layout->o_arg3;   11332       here___1 = layout->o_arg3;
11333       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   11333       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
11334                                  1L);   11334                                  1L);
11335       if (tmp___3) {   11335       if (tmp___3) {
11336     11336  
11337       } else {   11337       } else {
11338         vgPlain_assert_fail((Bool )1,   11338         vgPlain_assert_fail((Bool )1,
11339                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   11339                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
11340                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11340                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11341                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11341                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11342                             "");   11342                             "");
11343       }   11343       }
11344       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   11344       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
11345       if (tmp___4) {   11345       if (tmp___4) {
11346     11346  
11347       } else {   11347       } else {
11348         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11348         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11349                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11349                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11350                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11350                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11351                             "");   11351                             "");
11352       }   11352       }
11353       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11353       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11354                                             (Char *)"pwrite64(count)",   11354                                             (Char *)"pwrite64(count)",
11355                                             (PtrdiffT )here___1,   11355                                             (PtrdiffT )here___1,
11356                                             (SizeT )sizeof(vki_size_t ));   11356                                             (SizeT )sizeof(vki_size_t ));
11357       break;   11357       break;
11358     }   11358     }
11359     while (1) {   11359     while (1) {
11360       here___2 = layout->o_arg4;   11360       here___2 = layout->o_arg4;
11361       tmp___5 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),   11361       tmp___5 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),
11362                                  1L);   11362                                  1L);
11363       if (tmp___5) {   11363       if (tmp___5) {
11364     11364  
11365       } else {   11365       } else {
11366         vgPlain_assert_fail((Bool )1,   11366         vgPlain_assert_fail((Bool )1,
11367                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",   11367                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",
11368                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11368                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11369                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11369                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11370                             "");   11370                             "");
11371       }   11371       }
11372       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   11372       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
11373       if (tmp___6) {   11373       if (tmp___6) {
11374     11374  
11375       } else {   11375       } else {
11376         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11376         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11377                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11377                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11378                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11378                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11379                             "");   11379                             "");
11380       }   11380       }
11381       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11381       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11382                                             (Char *)"pwrite64(offset_low)",   11382                                             (Char *)"pwrite64(offset_low)",
11383                                             (PtrdiffT )here___2,   11383                                             (PtrdiffT )here___2,
11384                                             (SizeT )sizeof(vki_u32 ));   11384                                             (SizeT )sizeof(vki_u32 ));
11385       break;   11385       break;
11386     }   11386     }
11387     while (1) {   11387     while (1) {
11388       here___3 = layout->o_arg5;   11388       here___3 = layout->o_arg5;
11389       tmp___7 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),   11389       tmp___7 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),
11390                                  1L);   11390                                  1L);
11391       if (tmp___7) {   11391       if (tmp___7) {
11392     11392  
11393       } else {   11393       } else {
11394         vgPlain_assert_fail((Bool )1,   11394         vgPlain_assert_fail((Bool )1,
11395                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",   11395                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",
11396                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11396                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11397                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11397                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11398                             "");   11398                             "");
11399       }   11399       }
11400       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);   11400       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);
11401       if (tmp___8) {   11401       if (tmp___8) {
11402     11402  
11403       } else {   11403       } else {
11404         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11404         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11405                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,   11405                             (Char const   *)"m_syswrap/syswrap-generic.c", 2387,
11406                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",   11406                             (Char const   *)"vgSysWrap_generic_sys_pwrite64_before",
11407                             "");   11407                             "");
11408       }   11408       }
11409       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11409       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11410                                             (Char *)"pwrite64(offset_high)",   11410                                             (Char *)"pwrite64(offset_high)",
11411                                             (PtrdiffT )here___3,   11411                                             (PtrdiffT )here___3,
11412                                             (SizeT )sizeof(vki_u32 ));   11412                                             (SizeT )sizeof(vki_u32 ));
11413       break;   11413       break;
11414     }   11414     }
11415   } else {   11415   } else {
11416     11416  
11417   }   11417   }
11418   while (1) {   11418   while (1) {
11419     if (vgPlain_tdict.track_pre_mem_read) {   11419     if (vgPlain_tdict.track_pre_mem_read) {
11420       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   11420       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
11421                                             (Char *)"pwrite64(buf)",   11421                                             (Char *)"pwrite64(buf)",
11422                                             arrghs->arg2, arrghs->arg3);   11422                                             arrghs->arg2, arrghs->arg3);
11423     } else {   11423     } else {
11424     11424  
11425     }   11425     }
11426     break;   11426     break;
11427   }   11427   }
11428   return;   11428   return;
11429 }   11429 }
11430 }   11430 }
11431 void vgSysWrap_generic_sys_sync_before(ThreadId tid , SyscallArgLayout *layout ,   11431 void vgSysWrap_generic_sys_sync_before(ThreadId tid , SyscallArgLayout *layout ,
11432                                        SyscallArgs *arrghs ,   11432                                        SyscallArgs *arrghs ,
11433                                        SyscallStatus *status , UWord *flags )   11433                                        SyscallStatus *status , UWord *flags )
11434 {   11434 {
11435     11435  
11436     11436  
11437   {   11437   {
11438   *flags |= (unsigned long )(1 << 1);   11438   *flags |= (unsigned long )(1 << 1);
11439   if (vgPlain_clo_trace_syscalls) {   11439   if (vgPlain_clo_trace_syscalls) {
11440     vgPlain_printf("sys_sync ( )");   11440     vgPlain_printf("sys_sync ( )");
11441   } else {   11441   } else {
11442     11442  
11443   }   11443   }
11444   if (vgPlain_tdict.track_pre_reg_read) {   11444   if (vgPlain_tdict.track_pre_reg_read) {
11445     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11445     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11446                                           (Char *)"(syscallno)",   11446                                           (Char *)"(syscallno)",
11447                                           (PtrdiffT )layout->o_sysno,   11447                                           (PtrdiffT )layout->o_sysno,
11448                                           (SizeT )sizeof(UWord ));   11448                                           (SizeT )sizeof(UWord ));
11449   } else {   11449   } else {
11450     11450  
11451   }   11451   }
11452   return;   11452   return;
11453 }   11453 }
11454 }   11454 }
11455 void vgSysWrap_generic_sys_fstatfs_before(ThreadId tid ,   11455 void vgSysWrap_generic_sys_fstatfs_before(ThreadId tid ,
11456                                           SyscallArgLayout *layout ,   11456                                           SyscallArgLayout *layout ,
11457                                           SyscallArgs *arrghs ,   11457                                           SyscallArgs *arrghs ,
11458                                           SyscallStatus *status , UWord *flags )   11458                                           SyscallStatus *status , UWord *flags )
11459 {   11459 {
11460   Char *tmp ;   11460   Char *tmp ;
11461   Int here ;   11461   Int here ;
11462   long tmp___0 ;   11462   long tmp___0 ;
11463   long tmp___1 ;   11463   long tmp___1 ;
11464   Int here___0 ;   11464   Int here___0 ;
11465   long tmp___2 ;   11465   long tmp___2 ;
11466   long tmp___3 ;   11466   long tmp___3 ;
11467     11467  
11468   {   11468   {
11469   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   11469   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
11470                        (Char *)"fuse-compatible");   11470                        (Char *)"fuse-compatible");
11471   if (tmp) {   11471   if (tmp) {
11472     *flags |= (unsigned long )(1 << 1);   11472     *flags |= (unsigned long )(1 << 1);
11473   } else {   11473   } else {
11474     11474  
11475   }   11475   }
11476   if (vgPlain_clo_trace_syscalls) {   11476   if (vgPlain_clo_trace_syscalls) {
11477     vgPlain_printf("sys_fstatfs ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   11477     vgPlain_printf("sys_fstatfs ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
11478   } else {   11478   } else {
11479     11479  
11480   }   11480   }
11481   if (vgPlain_tdict.track_pre_reg_read) {   11481   if (vgPlain_tdict.track_pre_reg_read) {
11482     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11482     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11483                                           (Char *)"(syscallno)",   11483                                           (Char *)"(syscallno)",
11484                                           (PtrdiffT )layout->o_sysno,   11484                                           (PtrdiffT )layout->o_sysno,
11485                                           (SizeT )sizeof(UWord ));   11485                                           (SizeT )sizeof(UWord ));
11486     while (1) {   11486     while (1) {
11487       here = layout->o_arg1;   11487       here = layout->o_arg1;
11488       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   11488       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
11489                                  1L);   11489                                  1L);
11490       if (tmp___0) {   11490       if (tmp___0) {
11491     11491  
11492       } else {   11492       } else {
11493         vgPlain_assert_fail((Bool )1,   11493         vgPlain_assert_fail((Bool )1,
11494                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   11494                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
11495                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,   11495                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,
11496                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",   11496                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",
11497                             "");   11497                             "");
11498       }   11498       }
11499       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11499       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11500       if (tmp___1) {   11500       if (tmp___1) {
11501     11501  
11502       } else {   11502       } else {
11503         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11503         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11504                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,   11504                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,
11505                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",   11505                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",
11506                             "");   11506                             "");
11507       }   11507       }
11508       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11508       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11509                                             (Char *)"fstatfs(fd)",   11509                                             (Char *)"fstatfs(fd)",
11510                                             (PtrdiffT )here,   11510                                             (PtrdiffT )here,
11511                                             (SizeT )sizeof(unsigned int ));   11511                                             (SizeT )sizeof(unsigned int ));
11512       break;   11512       break;
11513     }   11513     }
11514     while (1) {   11514     while (1) {
11515       here___0 = layout->o_arg2;   11515       here___0 = layout->o_arg2;
11516       tmp___2 = __builtin_expect((long )(! (! (sizeof(struct statfs *) <= sizeof(UWord )))),   11516       tmp___2 = __builtin_expect((long )(! (! (sizeof(struct statfs *) <= sizeof(UWord )))),
11517                                  1L);   11517                                  1L);
11518       if (tmp___2) {   11518       if (tmp___2) {
11519     11519  
11520       } else {   11520       } else {
11521         vgPlain_assert_fail((Bool )1,   11521         vgPlain_assert_fail((Bool )1,
11522                             (Char const   *)"sizeof(struct statfs *) <= sizeof(UWord)",   11522                             (Char const   *)"sizeof(struct statfs *) <= sizeof(UWord)",
11523                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,   11523                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,
11524                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",   11524                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",
11525                             "");   11525                             "");
11526       }   11526       }
11527       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   11527       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
11528       if (tmp___3) {   11528       if (tmp___3) {
11529     11529  
11530       } else {   11530       } else {
11531         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11531         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11532                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,   11532                             (Char const   *)"m_syswrap/syswrap-generic.c", 2412,
11533                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",   11533                             (Char const   *)"vgSysWrap_generic_sys_fstatfs_before",
11534                             "");   11534                             "");
11535       }   11535       }
11536       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11536       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11537                                             (Char *)"fstatfs(buf)",   11537                                             (Char *)"fstatfs(buf)",
11538                                             (PtrdiffT )here___0,   11538                                             (PtrdiffT )here___0,
11539                                             (SizeT )sizeof(struct statfs *));   11539                                             (SizeT )sizeof(struct statfs *));
11540       break;   11540       break;
11541     }   11541     }
11542   } else {   11542   } else {
11543     11543  
11544   }   11544   }
11545   while (1) {   11545   while (1) {
11546     if (vgPlain_tdict.track_pre_mem_write) {   11546     if (vgPlain_tdict.track_pre_mem_write) {
11547       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   11547       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
11548                                              (Char *)"fstatfs(buf)",   11548                                              (Char *)"fstatfs(buf)",
11549                                              arrghs->arg2,   11549                                              arrghs->arg2,
11550                                              (SizeT )sizeof(struct vki_statfs ));   11550                                              (SizeT )sizeof(struct vki_statfs ));
11551     } else {   11551     } else {
11552     11552  
11553     }   11553     }
11554     break;   11554     break;
11555   }   11555   }
11556   return;   11556   return;
11557 }   11557 }
11558 }   11558 }
11559 void vgSysWrap_generic_sys_fstatfs_after(ThreadId tid , SyscallArgs *arrghs ,   11559 void vgSysWrap_generic_sys_fstatfs_after(ThreadId tid , SyscallArgs *arrghs ,
11560                                          SyscallStatus *status )   11560                                          SyscallStatus *status )
11561 {   11561 {
11562     11562  
11563     11563  
11564   {   11564   {
11565   while (1) {   11565   while (1) {
11566     if (vgPlain_tdict.track_post_mem_write) {   11566     if (vgPlain_tdict.track_post_mem_write) {
11567       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   11567       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
11568                                               (SizeT )sizeof(struct vki_statfs ));   11568                                               (SizeT )sizeof(struct vki_statfs ));
11569     } else {   11569     } else {
11570     11570  
11571     }   11571     }
11572     break;   11572     break;
11573   }   11573   }
11574   return;   11574   return;
11575 }   11575 }
11576 }   11576 }
11577 void vgSysWrap_generic_sys_fstatfs64_before(ThreadId tid ,   11577 void vgSysWrap_generic_sys_fstatfs64_before(ThreadId tid ,
11578                                             SyscallArgLayout *layout ,   11578                                             SyscallArgLayout *layout ,
11579                                             SyscallArgs *arrghs ,   11579                                             SyscallArgs *arrghs ,
11580                                             SyscallStatus *status ,   11580                                             SyscallStatus *status ,
11581                                             UWord *flags )   11581                                             UWord *flags )
11582 {   11582 {
11583   Char *tmp ;   11583   Char *tmp ;
11584   Int here ;   11584   Int here ;
11585   long tmp___0 ;   11585   long tmp___0 ;
11586   long tmp___1 ;   11586   long tmp___1 ;
11587   Int here___0 ;   11587   Int here___0 ;
11588   long tmp___2 ;   11588   long tmp___2 ;
11589   long tmp___3 ;   11589   long tmp___3 ;
11590   Int here___1 ;   11590   Int here___1 ;
11591   long tmp___4 ;   11591   long tmp___4 ;
11592   long tmp___5 ;   11592   long tmp___5 ;
11593     11593  
11594   {   11594   {
11595   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   11595   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
11596                        (Char *)"fuse-compatible");   11596                        (Char *)"fuse-compatible");
11597   if (tmp) {   11597   if (tmp) {
11598     *flags |= (unsigned long )(1 << 1);   11598     *flags |= (unsigned long )(1 << 1);
11599   } else {   11599   } else {
11600     11600  
11601   }   11601   }
11602   if (vgPlain_clo_trace_syscalls) {   11602   if (vgPlain_clo_trace_syscalls) {
11603     vgPlain_printf("sys_fstatfs64 ( %ld, %llu, %#lx )", arrghs->arg1,   11603     vgPlain_printf("sys_fstatfs64 ( %ld, %llu, %#lx )", arrghs->arg1,
11604                    (ULong )arrghs->arg2, arrghs->arg3);   11604                    (ULong )arrghs->arg2, arrghs->arg3);
11605   } else {   11605   } else {
11606     11606  
11607   }   11607   }
11608   if (vgPlain_tdict.track_pre_reg_read) {   11608   if (vgPlain_tdict.track_pre_reg_read) {
11609     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11609     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11610                                           (Char *)"(syscallno)",   11610                                           (Char *)"(syscallno)",
11611                                           (PtrdiffT )layout->o_sysno,   11611                                           (PtrdiffT )layout->o_sysno,
11612                                           (SizeT )sizeof(UWord ));   11612                                           (SizeT )sizeof(UWord ));
11613     while (1) {   11613     while (1) {
11614       here = layout->o_arg1;   11614       here = layout->o_arg1;
11615       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   11615       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
11616                                  1L);   11616                                  1L);
11617       if (tmp___0) {   11617       if (tmp___0) {
11618     11618  
11619       } else {   11619       } else {
11620         vgPlain_assert_fail((Bool )1,   11620         vgPlain_assert_fail((Bool )1,
11621                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   11621                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
11622                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,   11622                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,
11623                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",   11623                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",
11624                             "");   11624                             "");
11625       }   11625       }
11626       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11626       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11627       if (tmp___1) {   11627       if (tmp___1) {
11628     11628  
11629       } else {   11629       } else {
11630         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11630         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11631                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,   11631                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,
11632                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",   11632                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",
11633                             "");   11633                             "");
11634       }   11634       }
11635       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11635       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11636                                             (Char *)"fstatfs64(fd)",   11636                                             (Char *)"fstatfs64(fd)",
11637                                             (PtrdiffT )here,   11637                                             (PtrdiffT )here,
11638                                             (SizeT )sizeof(unsigned int ));   11638                                             (SizeT )sizeof(unsigned int ));
11639       break;   11639       break;
11640     }   11640     }
11641     while (1) {   11641     while (1) {
11642       here___0 = layout->o_arg2;   11642       here___0 = layout->o_arg2;
11643       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   11643       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
11644                                  1L);   11644                                  1L);
11645       if (tmp___2) {   11645       if (tmp___2) {
11646     11646  
11647       } else {   11647       } else {
11648         vgPlain_assert_fail((Bool )1,   11648         vgPlain_assert_fail((Bool )1,
11649                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   11649                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
11650                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,   11650                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,
11651                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",   11651                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",
11652                             "");   11652                             "");
11653       }   11653       }
11654       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   11654       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
11655       if (tmp___3) {   11655       if (tmp___3) {
11656     11656  
11657       } else {   11657       } else {
11658         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11658         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11659                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,   11659                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,
11660                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",   11660                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",
11661                             "");   11661                             "");
11662       }   11662       }
11663       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11663       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11664                                             (Char *)"fstatfs64(size)",   11664                                             (Char *)"fstatfs64(size)",
11665                                             (PtrdiffT )here___0,   11665                                             (PtrdiffT )here___0,
11666                                             (SizeT )sizeof(vki_size_t ));   11666                                             (SizeT )sizeof(vki_size_t ));
11667       break;   11667       break;
11668     }   11668     }
11669     while (1) {   11669     while (1) {
11670       here___1 = layout->o_arg3;   11670       here___1 = layout->o_arg3;
11671       tmp___4 = __builtin_expect((long )(! (! (sizeof(struct statfs64 *) <= sizeof(UWord )))),   11671       tmp___4 = __builtin_expect((long )(! (! (sizeof(struct statfs64 *) <= sizeof(UWord )))),
11672                                  1L);   11672                                  1L);
11673       if (tmp___4) {   11673       if (tmp___4) {
11674     11674  
11675       } else {   11675       } else {
11676         vgPlain_assert_fail((Bool )1,   11676         vgPlain_assert_fail((Bool )1,
11677                             (Char const   *)"sizeof(struct statfs64 *) <= sizeof(UWord)",   11677                             (Char const   *)"sizeof(struct statfs64 *) <= sizeof(UWord)",
11678                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,   11678                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,
11679                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",   11679                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",
11680                             "");   11680                             "");
11681       }   11681       }
11682       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   11682       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
11683       if (tmp___5) {   11683       if (tmp___5) {
11684     11684  
11685       } else {   11685       } else {
11686         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11686         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11687                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,   11687                             (Char const   *)"m_syswrap/syswrap-generic.c", 2426,
11688                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",   11688                             (Char const   *)"vgSysWrap_generic_sys_fstatfs64_before",
11689                             "");   11689                             "");
11690       }   11690       }
11691       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11691       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11692                                             (Char *)"fstatfs64(buf)",   11692                                             (Char *)"fstatfs64(buf)",
11693                                             (PtrdiffT )here___1,   11693                                             (PtrdiffT )here___1,
11694                                             (SizeT )sizeof(struct statfs64 *));   11694                                             (SizeT )sizeof(struct statfs64 *));
11695       break;   11695       break;
11696     }   11696     }
11697   } else {   11697   } else {
11698     11698  
11699   }   11699   }
11700   while (1) {   11700   while (1) {
11701     if (vgPlain_tdict.track_pre_mem_write) {   11701     if (vgPlain_tdict.track_pre_mem_write) {
11702       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   11702       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
11703                                              (Char *)"fstatfs64(buf)",   11703                                              (Char *)"fstatfs64(buf)",
11704                                              arrghs->arg3, arrghs->arg2);   11704                                              arrghs->arg3, arrghs->arg2);
11705     } else {   11705     } else {
11706     11706  
11707     }   11707     }
11708     break;   11708     break;
11709   }   11709   }
11710   return;   11710   return;
11711 }   11711 }
11712 }   11712 }
11713 void vgSysWrap_generic_sys_fstatfs64_after(ThreadId tid , SyscallArgs *arrghs ,   11713 void vgSysWrap_generic_sys_fstatfs64_after(ThreadId tid , SyscallArgs *arrghs ,
11714                                            SyscallStatus *status )   11714                                            SyscallStatus *status )
11715 {   11715 {
11716     11716  
11717     11717  
11718   {   11718   {
11719   while (1) {   11719   while (1) {
11720     if (vgPlain_tdict.track_post_mem_write) {   11720     if (vgPlain_tdict.track_post_mem_write) {
11721       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg3,   11721       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg3,
11722                                               arrghs->arg2);   11722                                               arrghs->arg2);
11723     } else {   11723     } else {
11724     11724  
11725     }   11725     }
11726     break;   11726     break;
11727   }   11727   }
11728   return;   11728   return;
11729 }   11729 }
11730 }   11730 }
11731 void vgSysWrap_generic_sys_getsid_before(ThreadId tid ,   11731 void vgSysWrap_generic_sys_getsid_before(ThreadId tid ,
11732                                          SyscallArgLayout *layout ,   11732                                          SyscallArgLayout *layout ,
11733                                          SyscallArgs *arrghs ,   11733                                          SyscallArgs *arrghs ,
11734                                          SyscallStatus *status , UWord *flags )   11734                                          SyscallStatus *status , UWord *flags )
11735 {   11735 {
11736   Int here ;   11736   Int here ;
11737   long tmp ;   11737   long tmp ;
11738   long tmp___0 ;   11738   long tmp___0 ;
11739     11739  
11740   {   11740   {
11741   if (vgPlain_clo_trace_syscalls) {   11741   if (vgPlain_clo_trace_syscalls) {
11742     vgPlain_printf("sys_getsid ( %ld )", arrghs->arg1);   11742     vgPlain_printf("sys_getsid ( %ld )", arrghs->arg1);
11743   } else {   11743   } else {
11744     11744  
11745   }   11745   }
11746   if (vgPlain_tdict.track_pre_reg_read) {   11746   if (vgPlain_tdict.track_pre_reg_read) {
11747     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11747     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11748                                           (Char *)"(syscallno)",   11748                                           (Char *)"(syscallno)",
11749                                           (PtrdiffT )layout->o_sysno,   11749                                           (PtrdiffT )layout->o_sysno,
11750                                           (SizeT )sizeof(UWord ));   11750                                           (SizeT )sizeof(UWord ));
11751     while (1) {   11751     while (1) {
11752       here = layout->o_arg1;   11752       here = layout->o_arg1;
11753       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),   11753       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),
11754                              1L);   11754                              1L);
11755       if (tmp) {   11755       if (tmp) {
11756     11756  
11757       } else {   11757       } else {
11758         vgPlain_assert_fail((Bool )1,   11758         vgPlain_assert_fail((Bool )1,
11759                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",   11759                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",
11760                             (Char const   *)"m_syswrap/syswrap-generic.c", 2437,   11760                             (Char const   *)"m_syswrap/syswrap-generic.c", 2437,
11761                             (Char const   *)"vgSysWrap_generic_sys_getsid_before",   11761                             (Char const   *)"vgSysWrap_generic_sys_getsid_before",
11762                             "");   11762                             "");
11763       }   11763       }
11764       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11764       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11765       if (tmp___0) {   11765       if (tmp___0) {
11766     11766  
11767       } else {   11767       } else {
11768         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11768         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11769                             (Char const   *)"m_syswrap/syswrap-generic.c", 2437,   11769                             (Char const   *)"m_syswrap/syswrap-generic.c", 2437,
11770                             (Char const   *)"vgSysWrap_generic_sys_getsid_before",   11770                             (Char const   *)"vgSysWrap_generic_sys_getsid_before",
11771                             "");   11771                             "");
11772       }   11772       }
11773       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11773       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11774                                             (Char *)"getsid(pid)",   11774                                             (Char *)"getsid(pid)",
11775                                             (PtrdiffT )here,   11775                                             (PtrdiffT )here,
11776                                             (SizeT )sizeof(vki_pid_t ));   11776                                             (SizeT )sizeof(vki_pid_t ));
11777       break;   11777       break;
11778     }   11778     }
11779   } else {   11779   } else {
11780     11780  
11781   }   11781   }
11782   return;   11782   return;
11783 }   11783 }
11784 }   11784 }
11785 void vgSysWrap_generic_sys_pread64_before(ThreadId tid ,   11785 void vgSysWrap_generic_sys_pread64_before(ThreadId tid ,
11786                                           SyscallArgLayout *layout ,   11786                                           SyscallArgLayout *layout ,
11787                                           SyscallArgs *arrghs ,   11787                                           SyscallArgs *arrghs ,
11788                                           SyscallStatus *status , UWord *flags )   11788                                           SyscallStatus *status , UWord *flags )
11789 {   11789 {
11790   Int here ;   11790   Int here ;
11791   long tmp ;   11791   long tmp ;
11792   long tmp___0 ;   11792   long tmp___0 ;
11793   Int here___0 ;   11793   Int here___0 ;
11794   long tmp___1 ;   11794   long tmp___1 ;
11795   long tmp___2 ;   11795   long tmp___2 ;
11796   Int here___1 ;   11796   Int here___1 ;
11797   long tmp___3 ;   11797   long tmp___3 ;
11798   long tmp___4 ;   11798   long tmp___4 ;
11799   Int here___2 ;   11799   Int here___2 ;
11800   long tmp___5 ;   11800   long tmp___5 ;
11801   long tmp___6 ;   11801   long tmp___6 ;
11802   Int here___3 ;   11802   Int here___3 ;
11803   long tmp___7 ;   11803   long tmp___7 ;
11804   long tmp___8 ;   11804   long tmp___8 ;
11805     11805  
11806   {   11806   {
11807   *flags |= (unsigned long )(1 << 1);   11807   *flags |= (unsigned long )(1 << 1);
11808   if (vgPlain_clo_trace_syscalls) {   11808   if (vgPlain_clo_trace_syscalls) {
11809     vgPlain_printf("sys_pread64 ( %ld, %#lx, %llu, %lld )", arrghs->arg1,   11809     vgPlain_printf("sys_pread64 ( %ld, %#lx, %llu, %lld )", arrghs->arg1,
11810                    arrghs->arg2, (ULong )arrghs->arg3,   11810                    arrghs->arg2, (ULong )arrghs->arg3,
11811                    (ULong )arrghs->arg4 | ((ULong )arrghs->arg5 << 32));   11811                    (ULong )arrghs->arg4 | ((ULong )arrghs->arg5 << 32));
11812   } else {   11812   } else {
11813     11813  
11814   }   11814   }
11815   if (vgPlain_tdict.track_pre_reg_read) {   11815   if (vgPlain_tdict.track_pre_reg_read) {
11816     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11816     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11817                                           (Char *)"(syscallno)",   11817                                           (Char *)"(syscallno)",
11818                                           (PtrdiffT )layout->o_sysno,   11818                                           (PtrdiffT )layout->o_sysno,
11819                                           (SizeT )sizeof(UWord ));   11819                                           (SizeT )sizeof(UWord ));
11820     while (1) {   11820     while (1) {
11821       here = layout->o_arg1;   11821       here = layout->o_arg1;
11822       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   11822       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
11823                              1L);   11823                              1L);
11824       if (tmp) {   11824       if (tmp) {
11825     11825  
11826       } else {   11826       } else {
11827         vgPlain_assert_fail((Bool )1,   11827         vgPlain_assert_fail((Bool )1,
11828                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   11828                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
11829                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11829                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11830                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11830                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11831                             "");   11831                             "");
11832       }   11832       }
11833       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   11833       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
11834       if (tmp___0) {   11834       if (tmp___0) {
11835     11835  
11836       } else {   11836       } else {
11837         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11837         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11838                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11838                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11839                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11839                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11840                             "");   11840                             "");
11841       }   11841       }
11842       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11842       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11843                                             (Char *)"pread64(fd)",   11843                                             (Char *)"pread64(fd)",
11844                                             (PtrdiffT )here,   11844                                             (PtrdiffT )here,
11845                                             (SizeT )sizeof(unsigned int ));   11845                                             (SizeT )sizeof(unsigned int ));
11846       break;   11846       break;
11847     }   11847     }
11848     while (1) {   11848     while (1) {
11849       here___0 = layout->o_arg2;   11849       here___0 = layout->o_arg2;
11850       tmp___1 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   11850       tmp___1 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
11851                                  1L);   11851                                  1L);
11852       if (tmp___1) {   11852       if (tmp___1) {
11853     11853  
11854       } else {   11854       } else {
11855         vgPlain_assert_fail((Bool )1,   11855         vgPlain_assert_fail((Bool )1,
11856                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   11856                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
11857                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11857                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11858                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11858                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11859                             "");   11859                             "");
11860       }   11860       }
11861       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   11861       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
11862       if (tmp___2) {   11862       if (tmp___2) {
11863     11863  
11864       } else {   11864       } else {
11865         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11865         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11866                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11866                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11867                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11867                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11868                             "");   11868                             "");
11869       }   11869       }
11870       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11870       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11871                                             (Char *)"pread64(buf)",   11871                                             (Char *)"pread64(buf)",
11872                                             (PtrdiffT )here___0,   11872                                             (PtrdiffT )here___0,
11873                                             (SizeT )sizeof(char *));   11873                                             (SizeT )sizeof(char *));
11874       break;   11874       break;
11875     }   11875     }
11876     while (1) {   11876     while (1) {
11877       here___1 = layout->o_arg3;   11877       here___1 = layout->o_arg3;
11878       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   11878       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
11879                                  1L);   11879                                  1L);
11880       if (tmp___3) {   11880       if (tmp___3) {
11881     11881  
11882       } else {   11882       } else {
11883         vgPlain_assert_fail((Bool )1,   11883         vgPlain_assert_fail((Bool )1,
11884                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   11884                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
11885                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11885                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11886                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11886                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11887                             "");   11887                             "");
11888       }   11888       }
11889       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   11889       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
11890       if (tmp___4) {   11890       if (tmp___4) {
11891     11891  
11892       } else {   11892       } else {
11893         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11893         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11894                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11894                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11895                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11895                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11896                             "");   11896                             "");
11897       }   11897       }
11898       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11898       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11899                                             (Char *)"pread64(count)",   11899                                             (Char *)"pread64(count)",
11900                                             (PtrdiffT )here___1,   11900                                             (PtrdiffT )here___1,
11901                                             (SizeT )sizeof(vki_size_t ));   11901                                             (SizeT )sizeof(vki_size_t ));
11902       break;   11902       break;
11903     }   11903     }
11904     while (1) {   11904     while (1) {
11905       here___2 = layout->o_arg4;   11905       here___2 = layout->o_arg4;
11906       tmp___5 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),   11906       tmp___5 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),
11907                                  1L);   11907                                  1L);
11908       if (tmp___5) {   11908       if (tmp___5) {
11909     11909  
11910       } else {   11910       } else {
11911         vgPlain_assert_fail((Bool )1,   11911         vgPlain_assert_fail((Bool )1,
11912                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",   11912                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",
11913                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11913                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11914                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11914                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11915                             "");   11915                             "");
11916       }   11916       }
11917       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   11917       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
11918       if (tmp___6) {   11918       if (tmp___6) {
11919     11919  
11920       } else {   11920       } else {
11921         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11921         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11922                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11922                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11923                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11923                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11924                             "");   11924                             "");
11925       }   11925       }
11926       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11926       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11927                                             (Char *)"pread64(offset_low)",   11927                                             (Char *)"pread64(offset_low)",
11928                                             (PtrdiffT )here___2,   11928                                             (PtrdiffT )here___2,
11929                                             (SizeT )sizeof(vki_u32 ));   11929                                             (SizeT )sizeof(vki_u32 ));
11930       break;   11930       break;
11931     }   11931     }
11932     while (1) {   11932     while (1) {
11933       here___3 = layout->o_arg5;   11933       here___3 = layout->o_arg5;
11934       tmp___7 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),   11934       tmp___7 = __builtin_expect((long )(! (! (sizeof(vki_u32 ) <= sizeof(UWord )))),
11935                                  1L);   11935                                  1L);
11936       if (tmp___7) {   11936       if (tmp___7) {
11937     11937  
11938       } else {   11938       } else {
11939         vgPlain_assert_fail((Bool )1,   11939         vgPlain_assert_fail((Bool )1,
11940                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",   11940                             (Char const   *)"sizeof(vki_u32) <= sizeof(UWord)",
11941                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11941                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11942                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11942                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11943                             "");   11943                             "");
11944       }   11944       }
11945       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);   11945       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);
11946       if (tmp___8) {   11946       if (tmp___8) {
11947     11947  
11948       } else {   11948       } else {
11949         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   11949         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
11950                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,   11950                             (Char const   *)"m_syswrap/syswrap-generic.c", 2448,
11951                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",   11951                             (Char const   *)"vgSysWrap_generic_sys_pread64_before",
11952                             "");   11952                             "");
11953       }   11953       }
11954       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   11954       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
11955                                             (Char *)"pread64(offset_high)",   11955                                             (Char *)"pread64(offset_high)",
11956                                             (PtrdiffT )here___3,   11956                                             (PtrdiffT )here___3,
11957                                             (SizeT )sizeof(vki_u32 ));   11957                                             (SizeT )sizeof(vki_u32 ));
11958       break;   11958       break;
11959     }   11959     }
11960   } else {   11960   } else {
11961     11961  
11962   }   11962   }
11963   while (1) {   11963   while (1) {
11964     if (vgPlain_tdict.track_pre_mem_write) {   11964     if (vgPlain_tdict.track_pre_mem_write) {
11965       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   11965       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
11966                                              (Char *)"pread64(buf)",   11966                                              (Char *)"pread64(buf)",
11967                                              arrghs->arg2, arrghs->arg3);   11967                                              arrghs->arg2, arrghs->arg3);
11968     } else {   11968     } else {
11969     11969  
11970     }   11970     }
11971     break;   11971     break;
11972   }   11972   }
11973   return;   11973   return;
11974 }   11974 }
11975 }   11975 }
11976 void vgSysWrap_generic_sys_pread64_after(ThreadId tid , SyscallArgs *arrghs ,   11976 void vgSysWrap_generic_sys_pread64_after(ThreadId tid , SyscallArgs *arrghs ,
11977                                          SyscallStatus *status )   11977                                          SyscallStatus *status )
11978 {   11978 {
11979   Bool tmp ;   11979   Bool tmp ;
11980   int tmp___0 ;   11980   int tmp___0 ;
11981   long tmp___1 ;   11981   long tmp___1 ;
11982   UWord tmp___2 ;   11982   UWord tmp___2 ;
11983   UWord tmp___3 ;   11983   UWord tmp___3 ;
11984     11984  
11985   {   11985   {
11986   if ((unsigned int )status->what == 1U) {   11986   if ((unsigned int )status->what == 1U) {
11987     tmp = sr_isError(status->sres);   11987     tmp = sr_isError(status->sres);
11988     if (tmp) {   11988     if (tmp) {
11989       tmp___0 = 0;   11989       tmp___0 = 0;
11990     } else {   11990     } else {
11991       tmp___0 = 1;   11991       tmp___0 = 1;
11992     }   11992     }
11993   } else {   11993   } else {
11994     tmp___0 = 0;   11994     tmp___0 = 0;
11995   }   11995   }
11996   tmp___1 = __builtin_expect((long )tmp___0, 1L);   11996   tmp___1 = __builtin_expect((long )tmp___0, 1L);
11997   if (tmp___1) {   11997   if (tmp___1) {
11998     11998  
11999   } else {   11999   } else {
12000     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   12000     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
12001                         (Char const   *)"m_syswrap/syswrap-generic.c", 2462,   12001                         (Char const   *)"m_syswrap/syswrap-generic.c", 2462,
12002                         (Char const   *)"vgSysWrap_generic_sys_pread64_after",   12002                         (Char const   *)"vgSysWrap_generic_sys_pread64_after",
12003                         "");   12003                         "");
12004   }   12004   }
12005   tmp___3 = getRES(status);   12005   tmp___3 = getRES(status);
12006   if (tmp___3 > 0UL) {   12006   if (tmp___3 > 0UL) {
12007     while (1) {   12007     while (1) {
12008       if (vgPlain_tdict.track_post_mem_write) {   12008       if (vgPlain_tdict.track_post_mem_write) {
12009         tmp___2 = getRES(status);   12009         tmp___2 = getRES(status);
12010         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   12010         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
12011                                                 tmp___2);   12011                                                 tmp___2);
12012       } else {   12012       } else {
12013     12013  
12014       }   12014       }
12015       break;   12015       break;
12016     }   12016     }
12017   } else {   12017   } else {
12018     12018  
12019   }   12019   }
12020   return;   12020   return;
12021 }   12021 }
12022 }   12022 }
12023 void vgSysWrap_generic_sys_mknod_before(ThreadId tid ,   12023 void vgSysWrap_generic_sys_mknod_before(ThreadId tid ,
12024                                         SyscallArgLayout *layout ,   12024                                         SyscallArgLayout *layout ,
12025                                         SyscallArgs *arrghs ,   12025                                         SyscallArgs *arrghs ,
12026                                         SyscallStatus *status , UWord *flags )   12026                                         SyscallStatus *status , UWord *flags )
12027 {   12027 {
12028   Char *tmp ;   12028   Char *tmp ;
12029   Int here ;   12029   Int here ;
12030   long tmp___0 ;   12030   long tmp___0 ;
12031   long tmp___1 ;   12031   long tmp___1 ;
12032   Int here___0 ;   12032   Int here___0 ;
12033   long tmp___2 ;   12033   long tmp___2 ;
12034   long tmp___3 ;   12034   long tmp___3 ;
12035   Int here___1 ;   12035   Int here___1 ;
12036   long tmp___4 ;   12036   long tmp___4 ;
12037   long tmp___5 ;   12037   long tmp___5 ;
12038     12038  
12039   {   12039   {
12040   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   12040   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
12041                        (Char *)"fuse-compatible");   12041                        (Char *)"fuse-compatible");
12042   if (tmp) {   12042   if (tmp) {
12043     *flags |= (unsigned long )(1 << 1);   12043     *flags |= (unsigned long )(1 << 1);
12044   } else {   12044   } else {
12045     12045  
12046   }   12046   }
12047   if (vgPlain_clo_trace_syscalls) {   12047   if (vgPlain_clo_trace_syscalls) {
12048     vgPlain_printf("sys_mknod ( %#lx(%s), 0x%lx, 0x%lx )", arrghs->arg1,   12048     vgPlain_printf("sys_mknod ( %#lx(%s), 0x%lx, 0x%lx )", arrghs->arg1,
12049                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);   12049                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);
12050   } else {   12050   } else {
12051     12051  
12052   }   12052   }
12053   if (vgPlain_tdict.track_pre_reg_read) {   12053   if (vgPlain_tdict.track_pre_reg_read) {
12054     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12054     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12055                                           (Char *)"(syscallno)",   12055                                           (Char *)"(syscallno)",
12056                                           (PtrdiffT )layout->o_sysno,   12056                                           (PtrdiffT )layout->o_sysno,
12057                                           (SizeT )sizeof(UWord ));   12057                                           (SizeT )sizeof(UWord ));
12058     while (1) {   12058     while (1) {
12059       here = layout->o_arg1;   12059       here = layout->o_arg1;
12060       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   12060       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
12061                                  1L);   12061                                  1L);
12062       if (tmp___0) {   12062       if (tmp___0) {
12063     12063  
12064       } else {   12064       } else {
12065         vgPlain_assert_fail((Bool )1,   12065         vgPlain_assert_fail((Bool )1,
12066                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   12066                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
12067                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,   12067                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,
12068                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",   12068                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",
12069                             "");   12069                             "");
12070       }   12070       }
12071       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   12071       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
12072       if (tmp___1) {   12072       if (tmp___1) {
12073     12073  
12074       } else {   12074       } else {
12075         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12075         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12076                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,   12076                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,
12077                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",   12077                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",
12078                             "");   12078                             "");
12079       }   12079       }
12080       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12080       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12081                                             (Char *)"mknod(pathname)",   12081                                             (Char *)"mknod(pathname)",
12082                                             (PtrdiffT )here,   12082                                             (PtrdiffT )here,
12083                                             (SizeT )sizeof(char const   *));   12083                                             (SizeT )sizeof(char const   *));
12084       break;   12084       break;
12085     }   12085     }
12086     while (1) {   12086     while (1) {
12087       here___0 = layout->o_arg2;   12087       here___0 = layout->o_arg2;
12088       tmp___2 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   12088       tmp___2 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
12089                                  1L);   12089                                  1L);
12090       if (tmp___2) {   12090       if (tmp___2) {
12091     12091  
12092       } else {   12092       } else {
12093         vgPlain_assert_fail((Bool )1,   12093         vgPlain_assert_fail((Bool )1,
12094                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   12094                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
12095                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,   12095                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,
12096                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",   12096                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",
12097                             "");   12097                             "");
12098       }   12098       }
12099       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   12099       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
12100       if (tmp___3) {   12100       if (tmp___3) {
12101     12101  
12102       } else {   12102       } else {
12103         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12103         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12104                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,   12104                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,
12105                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",   12105                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",
12106                             "");   12106                             "");
12107       }   12107       }
12108       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12108       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12109                                             (Char *)"mknod(mode)",   12109                                             (Char *)"mknod(mode)",
12110                                             (PtrdiffT )here___0,   12110                                             (PtrdiffT )here___0,
12111                                             (SizeT )sizeof(int ));   12111                                             (SizeT )sizeof(int ));
12112       break;   12112       break;
12113     }   12113     }
12114     while (1) {   12114     while (1) {
12115       here___1 = layout->o_arg3;   12115       here___1 = layout->o_arg3;
12116       tmp___4 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   12116       tmp___4 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
12117                                  1L);   12117                                  1L);
12118       if (tmp___4) {   12118       if (tmp___4) {
12119     12119  
12120       } else {   12120       } else {
12121         vgPlain_assert_fail((Bool )1,   12121         vgPlain_assert_fail((Bool )1,
12122                             (Char const   *)"sizeof(unsigned) <= sizeof(UWord)",   12122                             (Char const   *)"sizeof(unsigned) <= sizeof(UWord)",
12123                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,   12123                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,
12124                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",   12124                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",
12125                             "");   12125                             "");
12126       }   12126       }
12127       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   12127       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
12128       if (tmp___5) {   12128       if (tmp___5) {
12129     12129  
12130       } else {   12130       } else {
12131         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12131         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12132                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,   12132                             (Char const   *)"m_syswrap/syswrap-generic.c", 2473,
12133                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",   12133                             (Char const   *)"vgSysWrap_generic_sys_mknod_before",
12134                             "");   12134                             "");
12135       }   12135       }
12136       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12136       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12137                                             (Char *)"mknod(dev)",   12137                                             (Char *)"mknod(dev)",
12138                                             (PtrdiffT )here___1,   12138                                             (PtrdiffT )here___1,
12139                                             (SizeT )sizeof(unsigned int ));   12139                                             (SizeT )sizeof(unsigned int ));
12140       break;   12140       break;
12141     }   12141     }
12142   } else {   12142   } else {
12143     12143  
12144   }   12144   }
12145   while (1) {   12145   while (1) {
12146     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   12146     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
12147       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   12147       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
12148                                                    (Char *)"mknod(pathname)",   12148                                                    (Char *)"mknod(pathname)",
12149                                                    arrghs->arg1);   12149                                                    arrghs->arg1);
12150     } else {   12150     } else {
12151     12151  
12152     }   12152     }
12153     break;   12153     break;
12154   }   12154   }
12155   return;   12155   return;
12156 }   12156 }
12157 }   12157 }
12158 void vgSysWrap_generic_sys_flock_before(ThreadId tid ,   12158 void vgSysWrap_generic_sys_flock_before(ThreadId tid ,
12159                                         SyscallArgLayout *layout ,   12159                                         SyscallArgLayout *layout ,
12160                                         SyscallArgs *arrghs ,   12160                                         SyscallArgs *arrghs ,
12161                                         SyscallStatus *status , UWord *flags )   12161                                         SyscallStatus *status , UWord *flags )
12162 {   12162 {
12163   Int here ;   12163   Int here ;
12164   long tmp ;   12164   long tmp ;
12165   long tmp___0 ;   12165   long tmp___0 ;
12166   Int here___0 ;   12166   Int here___0 ;
12167   long tmp___1 ;   12167   long tmp___1 ;
12168   long tmp___2 ;   12168   long tmp___2 ;
12169     12169  
12170   {   12170   {
12171   *flags |= (unsigned long )(1 << 1);   12171   *flags |= (unsigned long )(1 << 1);
12172   if (vgPlain_clo_trace_syscalls) {   12172   if (vgPlain_clo_trace_syscalls) {
12173     vgPlain_printf("sys_flock ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   12173     vgPlain_printf("sys_flock ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
12174   } else {   12174   } else {
12175     12175  
12176   }   12176   }
12177   if (vgPlain_tdict.track_pre_reg_read) {   12177   if (vgPlain_tdict.track_pre_reg_read) {
12178     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12178     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12179                                           (Char *)"(syscallno)",   12179                                           (Char *)"(syscallno)",
12180                                           (PtrdiffT )layout->o_sysno,   12180                                           (PtrdiffT )layout->o_sysno,
12181                                           (SizeT )sizeof(UWord ));   12181                                           (SizeT )sizeof(UWord ));
12182     while (1) {   12182     while (1) {
12183       here = layout->o_arg1;   12183       here = layout->o_arg1;
12184       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   12184       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
12185                              1L);   12185                              1L);
12186       if (tmp) {   12186       if (tmp) {
12187     12187  
12188       } else {   12188       } else {
12189         vgPlain_assert_fail((Bool )1,   12189         vgPlain_assert_fail((Bool )1,
12190                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   12190                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
12191                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,   12191                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,
12192                             (Char const   *)"vgSysWrap_generic_sys_flock_before",   12192                             (Char const   *)"vgSysWrap_generic_sys_flock_before",
12193                             "");   12193                             "");
12194       }   12194       }
12195       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   12195       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
12196       if (tmp___0) {   12196       if (tmp___0) {
12197     12197  
12198       } else {   12198       } else {
12199         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12199         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12200                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,   12200                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,
12201                             (Char const   *)"vgSysWrap_generic_sys_flock_before",   12201                             (Char const   *)"vgSysWrap_generic_sys_flock_before",
12202                             "");   12202                             "");
12203       }   12203       }
12204       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12204       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12205                                             (Char *)"flock(fd)",   12205                                             (Char *)"flock(fd)",
12206                                             (PtrdiffT )here,   12206                                             (PtrdiffT )here,
12207                                             (SizeT )sizeof(unsigned int ));   12207                                             (SizeT )sizeof(unsigned int ));
12208       break;   12208       break;
12209     }   12209     }
12210     while (1) {   12210     while (1) {
12211       here___0 = layout->o_arg2;   12211       here___0 = layout->o_arg2;
12212       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   12212       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
12213                                  1L);   12213                                  1L);
12214       if (tmp___1) {   12214       if (tmp___1) {
12215     12215  
12216       } else {   12216       } else {
12217         vgPlain_assert_fail((Bool )1,   12217         vgPlain_assert_fail((Bool )1,
12218                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   12218                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
12219                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,   12219                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,
12220                             (Char const   *)"vgSysWrap_generic_sys_flock_before",   12220                             (Char const   *)"vgSysWrap_generic_sys_flock_before",
12221                             "");   12221                             "");
12222       }   12222       }
12223       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   12223       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
12224       if (tmp___2) {   12224       if (tmp___2) {
12225     12225  
12226       } else {   12226       } else {
12227         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12227         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12228                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,   12228                             (Char const   *)"m_syswrap/syswrap-generic.c", 2481,
12229                             (Char const   *)"vgSysWrap_generic_sys_flock_before",   12229                             (Char const   *)"vgSysWrap_generic_sys_flock_before",
12230                             "");   12230                             "");
12231       }   12231       }
12232       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12232       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12233                                             (Char *)"flock(operation)",   12233                                             (Char *)"flock(operation)",
12234                                             (PtrdiffT )here___0,   12234                                             (PtrdiffT )here___0,
12235                                             (SizeT )sizeof(unsigned int ));   12235                                             (SizeT )sizeof(unsigned int ));
12236       break;   12236       break;
12237     }   12237     }
12238   } else {   12238   } else {
12239     12239  
12240   }   12240   }
12241   return;   12241   return;
12242 }   12242 }
12243 }   12243 }
12244 static void pre_argv_envp(Addr a , ThreadId tid , Char *s1 , Char *s2 )   12244 static void pre_argv_envp(Addr a , ThreadId tid , Char *s1 , Char *s2 )
12245 {   12245 {
12246   Addr a_deref ;   12246   Addr a_deref ;
12247   Addr *a_p ;   12247   Addr *a_p ;
12248     12248  
12249   {   12249   {
12250   while (1) {   12250   while (1) {
12251     a_p = (Addr *)a;   12251     a_p = (Addr *)a;
12252     while (1) {   12252     while (1) {
12253       if (vgPlain_tdict.track_pre_mem_read) {   12253       if (vgPlain_tdict.track_pre_mem_read) {
12254         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, s1, (Addr )a_p,   12254         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid, s1, (Addr )a_p,
12255                                               (SizeT )sizeof(Addr ));   12255                                               (SizeT )sizeof(Addr ));
12256       } else {   12256       } else {
12257     12257  
12258       }   12258       }
12259       break;   12259       break;
12260     }   12260     }
12261     a_deref = *a_p;   12261     a_deref = *a_p;
12262     if (0UL == a_deref) {   12262     if (0UL == a_deref) {
12263       break;   12263       break;
12264     } else {   12264     } else {
12265     12265  
12266     }   12266     }
12267     while (1) {   12267     while (1) {
12268       if (vgPlain_tdict.track_pre_mem_read_asciiz) {   12268       if (vgPlain_tdict.track_pre_mem_read_asciiz) {
12269         (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid, s2,   12269         (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid, s2,
12270                                                      a_deref);   12270                                                      a_deref);
12271       } else {   12271       } else {
12272     12272  
12273       }   12273       }
12274       break;   12274       break;
12275     }   12275     }
12276     a += (Addr )sizeof(char *);   12276     a += (Addr )sizeof(char *);
12277   }   12277   }
12278   return;   12278   return;
12279 }   12279 }
12280 }   12280 }
12281 static Bool i_am_the_only_thread(void)   12281 static Bool i_am_the_only_thread(void)
12282 {   12282 {
12283   Int c ;   12283   Int c ;
12284   Int tmp ;   12284   Int tmp ;
12285   long tmp___0 ;   12285   long tmp___0 ;
12286     12286  
12287   {   12287   {
12288   tmp = vgPlain_count_living_threads();   12288   tmp = vgPlain_count_living_threads();
12289   c = tmp;   12289   c = tmp;
12290   tmp___0 = __builtin_expect((long )(! (! (c >= 1))), 1L);   12290   tmp___0 = __builtin_expect((long )(! (! (c >= 1))), 1L);
12291   if (tmp___0) {   12291   if (tmp___0) {
12292     12292  
12293   } else {   12293   } else {
12294     vgPlain_assert_fail((Bool )1, (Char const   *)"c >= 1",   12294     vgPlain_assert_fail((Bool )1, (Char const   *)"c >= 1",
12295                         (Char const   *)"m_syswrap/syswrap-generic.c", 2502,   12295                         (Char const   *)"m_syswrap/syswrap-generic.c", 2502,
12296                         (Char const   *)"i_am_the_only_thread", "");   12296                         (Char const   *)"i_am_the_only_thread", "");
12297   }   12297   }
12298   return ((Bool )(c == 1));   12298   return ((Bool )(c == 1));
12299 }   12299 }
12300 }   12300 }
12301 void vgPlain_reap_threads(ThreadId self )   12301 void vgPlain_reap_threads(ThreadId self )
12302 {   12302 {
12303   Bool tmp ;   12303   Bool tmp ;
12304   Bool tmp___0 ;   12304   Bool tmp___0 ;
12305   int tmp___1 ;   12305   int tmp___1 ;
12306   long tmp___2 ;   12306   long tmp___2 ;
12307     12307  
12308   {   12308   {
12309   while (1) {   12309   while (1) {
12310     tmp = i_am_the_only_thread();   12310     tmp = i_am_the_only_thread();
12311     if (tmp) {   12311     if (tmp) {
12312       break;   12312       break;
12313     } else {   12313     } else {
12314     12314  
12315     }   12315     }
12316     vgPlain_vg_yield();   12316     vgPlain_vg_yield();
12317     vgPlain_poll_signals(self);   12317     vgPlain_poll_signals(self);
12318   }   12318   }
12319   tmp___0 = i_am_the_only_thread();   12319   tmp___0 = i_am_the_only_thread();
12320   if (tmp___0) {   12320   if (tmp___0) {
12321     tmp___1 = 1;   12321     tmp___1 = 1;
12322   } else {   12322   } else {
12323     tmp___1 = 0;   12323     tmp___1 = 0;
12324   }   12324   }
12325   tmp___2 = __builtin_expect((long )tmp___1, 1L);   12325   tmp___2 = __builtin_expect((long )tmp___1, 1L);
12326   if (tmp___2) {   12326   if (tmp___2) {
12327     12327  
12328   } else {   12328   } else {
12329     vgPlain_assert_fail((Bool )1, (Char const   *)"i_am_the_only_thread()",   12329     vgPlain_assert_fail((Bool )1, (Char const   *)"i_am_the_only_thread()",
12330                         (Char const   *)"m_syswrap/syswrap-generic.c", 2514,   12330                         (Char const   *)"m_syswrap/syswrap-generic.c", 2514,
12331                         (Char const   *)"vgPlain_reap_threads", "");   12331                         (Char const   *)"vgPlain_reap_threads", "");
12332   }   12332   }
12333   return;   12333   return;
12334 }   12334 }
12335 }   12335 }
12336 void vgSysWrap_generic_sys_execve_before(ThreadId tid ,   12336 void vgSysWrap_generic_sys_execve_before(ThreadId tid ,
12337                                          SyscallArgLayout *layout ,   12337                                          SyscallArgLayout *layout ,
12338                                          SyscallArgs *arrghs ,   12338                                          SyscallArgs *arrghs ,
12339                                          SyscallStatus *status , UWord *flags )   12339                                          SyscallStatus *status , UWord *flags )
12340 {   12340 {
12341   Char *path ;   12341   Char *path ;
12342   Char **envp ;   12342   Char **envp ;
12343   Char **argv ;   12343   Char **argv ;
12344   Char **arg2copy ;   12344   Char **arg2copy ;
12345   Char *launcher_basename ;   12345   Char *launcher_basename ;
12346   ThreadState *tst ;   12346   ThreadState *tst ;
12347   Int i ;   12347   Int i ;
12348   Int j ;   12348   Int j ;
12349   Int tot_args ;   12349   Int tot_args ;
12350   SysRes res ;   12350   SysRes res ;
12351   Bool setuid_allowed ;   12351   Bool setuid_allowed ;
12352   Bool trace_this_child ;   12352   Bool trace_this_child ;
12353   Int here ;   12353   Int here ;
12354   long tmp ;   12354   long tmp ;
12355   long tmp___0 ;   12355   long tmp___0 ;
12356   Int here___0 ;   12356   Int here___0 ;
12357   long tmp___1 ;   12357   long tmp___1 ;
12358   long tmp___2 ;   12358   long tmp___2 ;
12359   Int here___1 ;   12359   Int here___1 ;
12360   long tmp___3 ;   12360   long tmp___3 ;
12361   long tmp___4 ;   12361   long tmp___4 ;
12362   Bool tmp___5 ;   12362   Bool tmp___5 ;
12363   int tmp___6 ;   12363   int tmp___6 ;
12364   long tmp___7 ;   12364   long tmp___7 ;
12365   Word wzz ;   12365   Word wzz ;
12366   int tmp___8 ;   12366   int tmp___8 ;
12367   long tmp___9 ;   12367   long tmp___9 ;
12368   Bool tmp___10 ;   12368   Bool tmp___10 ;
12369   Int q ;   12369   Int q ;
12370   HChar **vec ;   12370   HChar **vec ;
12371   HChar **child_argv ;   12371   HChar **child_argv ;
12372   Word wzz___0 ;   12372   Word wzz___0 ;
12373   UWord tmp___11 ;   12373   UWord tmp___11 ;
12374   int tmp___12 ;   12374   int tmp___12 ;
12375   long tmp___13 ;   12375   long tmp___13 ;
12376   Bool tmp___14 ;   12376   Bool tmp___14 ;
12377   Word wzz___1 ;   12377   Word wzz___1 ;
12378   int tmp___15 ;   12378   int tmp___15 ;
12379   long tmp___16 ;   12379   long tmp___16 ;
12380   long tmp___17 ;   12380   long tmp___17 ;
12381   long tmp___18 ;   12381   long tmp___18 ;
12382   long tmp___19 ;   12382   long tmp___19 ;
12383   Word tmp___20 ;   12383   Word tmp___20 ;
12384   int tmp___21 ;   12384   int tmp___21 ;
12385   long tmp___22 ;   12385   long tmp___22 ;
12386   Word tmp___23 ;   12386   Word tmp___23 ;
12387   void *tmp___24 ;   12387   void *tmp___24 ;
12388   Int tmp___25 ;   12388   Int tmp___25 ;
12389   Int tmp___26 ;   12389   Int tmp___26 ;
12390   void *tmp___27 ;   12390   void *tmp___27 ;
12391   Word tmp___28 ;   12391   Word tmp___28 ;
12392   Int tmp___29 ;   12392   Int tmp___29 ;
12393   Int tmp___30 ;   12393   Int tmp___30 ;
12394   Int tmp___31 ;   12394   Int tmp___31 ;
12395   long tmp___32 ;   12395   long tmp___32 ;
12396   vki_sigset_t allsigs ;   12396   vki_sigset_t allsigs ;
12397   vki_siginfo_t info ;   12397   vki_siginfo_t info ;
12398   vki_sigaction_fromK_t sa_f ;   12398   vki_sigaction_fromK_t sa_f ;
12399   vki_sigaction_toK_t sa_t ;   12399   vki_sigaction_toK_t sa_t ;
12400   Int tmp___33 ;   12400   Int tmp___33 ;
12401   Char **cpp ;   12401   Char **cpp ;
12402   Bool tmp___34 ;   12402   Bool tmp___34 ;
12403   int tmp___35 ;   12403   int tmp___35 ;
12404   long tmp___36 ;   12404   long tmp___36 ;
12405   UWord tmp___37 ;   12405   UWord tmp___37 ;
12406     12406  
12407   {   12407   {
12408   path = (Char *)((void *)0);   12408   path = (Char *)((void *)0);
12409   envp = (Char **)((void *)0);   12409   envp = (Char **)((void *)0);
12410   argv = (Char **)((void *)0);   12410   argv = (Char **)((void *)0);
12411   launcher_basename = (Char *)((void *)0);   12411   launcher_basename = (Char *)((void *)0);
12412   if (vgPlain_clo_trace_syscalls) {   12412   if (vgPlain_clo_trace_syscalls) {
12413     vgPlain_printf("sys_execve ( %#lx(%s), %#lx, %#lx )", arrghs->arg1,   12413     vgPlain_printf("sys_execve ( %#lx(%s), %#lx, %#lx )", arrghs->arg1,
12414                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);   12414                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);
12415   } else {   12415   } else {
12416     12416  
12417   }   12417   }
12418   if (vgPlain_tdict.track_pre_reg_read) {   12418   if (vgPlain_tdict.track_pre_reg_read) {
12419     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12419     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12420                                           (Char *)"(syscallno)",   12420                                           (Char *)"(syscallno)",
12421                                           (PtrdiffT )layout->o_sysno,   12421                                           (PtrdiffT )layout->o_sysno,
12422                                           (SizeT )sizeof(UWord ));   12422                                           (SizeT )sizeof(UWord ));
12423     while (1) {   12423     while (1) {
12424       here = layout->o_arg1;   12424       here = layout->o_arg1;
12425       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   12425       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
12426                              1L);   12426                              1L);
12427       if (tmp) {   12427       if (tmp) {
12428     12428  
12429       } else {   12429       } else {
12430         vgPlain_assert_fail((Bool )1,   12430         vgPlain_assert_fail((Bool )1,
12431                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   12431                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
12432                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,   12432                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,
12433                             (Char const   *)"vgSysWrap_generic_sys_execve_before",   12433                             (Char const   *)"vgSysWrap_generic_sys_execve_before",
12434                             "");   12434                             "");
12435       }   12435       }
12436       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   12436       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
12437       if (tmp___0) {   12437       if (tmp___0) {
12438     12438  
12439       } else {   12439       } else {
12440         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12440         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12441                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,   12441                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,
12442                             (Char const   *)"vgSysWrap_generic_sys_execve_before",   12442                             (Char const   *)"vgSysWrap_generic_sys_execve_before",
12443                             "");   12443                             "");
12444       }   12444       }
12445       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12445       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12446                                             (Char *)"execve(filename)",   12446                                             (Char *)"execve(filename)",
12447                                             (PtrdiffT )here,   12447                                             (PtrdiffT )here,
12448                                             (SizeT )sizeof(char *));   12448                                             (SizeT )sizeof(char *));
12449       break;   12449       break;
12450     }   12450     }
12451     while (1) {   12451     while (1) {
12452       here___0 = layout->o_arg2;   12452       here___0 = layout->o_arg2;
12453       tmp___1 = __builtin_expect((long )(! (! (sizeof(char **) <= sizeof(UWord )))),   12453       tmp___1 = __builtin_expect((long )(! (! (sizeof(char **) <= sizeof(UWord )))),
12454                                  1L);   12454                                  1L);
12455       if (tmp___1) {   12455       if (tmp___1) {
12456     12456  
12457       } else {   12457       } else {
12458         vgPlain_assert_fail((Bool )1,   12458         vgPlain_assert_fail((Bool )1,
12459                             (Char const   *)"sizeof(char **) <= sizeof(UWord)",   12459                             (Char const   *)"sizeof(char **) <= sizeof(UWord)",
12460                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,   12460                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,
12461                             (Char const   *)"vgSysWrap_generic_sys_execve_before",   12461                             (Char const   *)"vgSysWrap_generic_sys_execve_before",
12462                             "");   12462                             "");
12463       }   12463       }
12464       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   12464       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
12465       if (tmp___2) {   12465       if (tmp___2) {
12466     12466  
12467       } else {   12467       } else {
12468         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12468         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12469                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,   12469                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,
12470                             (Char const   *)"vgSysWrap_generic_sys_execve_before",   12470                             (Char const   *)"vgSysWrap_generic_sys_execve_before",
12471                             "");   12471                             "");
12472       }   12472       }
12473       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12473       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12474                                             (Char *)"execve(argv)",   12474                                             (Char *)"execve(argv)",
12475                                             (PtrdiffT )here___0,   12475                                             (PtrdiffT )here___0,
12476                                             (SizeT )sizeof(char **));   12476                                             (SizeT )sizeof(char **));
12477       break;   12477       break;
12478     }   12478     }
12479     while (1) {   12479     while (1) {
12480       here___1 = layout->o_arg3;   12480       here___1 = layout->o_arg3;
12481       tmp___3 = __builtin_expect((long )(! (! (sizeof(char **) <= sizeof(UWord )))),   12481       tmp___3 = __builtin_expect((long )(! (! (sizeof(char **) <= sizeof(UWord )))),
12482                                  1L);   12482                                  1L);
12483       if (tmp___3) {   12483       if (tmp___3) {
12484     12484  
12485       } else {   12485       } else {
12486         vgPlain_assert_fail((Bool )1,   12486         vgPlain_assert_fail((Bool )1,
12487                             (Char const   *)"sizeof(char **) <= sizeof(UWord)",   12487                             (Char const   *)"sizeof(char **) <= sizeof(UWord)",
12488                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,   12488                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,
12489                             (Char const   *)"vgSysWrap_generic_sys_execve_before",   12489                             (Char const   *)"vgSysWrap_generic_sys_execve_before",
12490                             "");   12490                             "");
12491       }   12491       }
12492       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   12492       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
12493       if (tmp___4) {   12493       if (tmp___4) {
12494     12494  
12495       } else {   12495       } else {
12496         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12496         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12497                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,   12497                             (Char const   *)"m_syswrap/syswrap-generic.c", 2533,
12498                             (Char const   *)"vgSysWrap_generic_sys_execve_before",   12498                             (Char const   *)"vgSysWrap_generic_sys_execve_before",
12499                             "");   12499                             "");
12500       }   12500       }
12501       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12501       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12502                                             (Char *)"execve(envp)",   12502                                             (Char *)"execve(envp)",
12503                                             (PtrdiffT )here___1,   12503                                             (PtrdiffT )here___1,
12504                                             (SizeT )sizeof(char **));   12504                                             (SizeT )sizeof(char **));
12505       break;   12505       break;
12506     }   12506     }
12507   } else {   12507   } else {
12508     12508  
12509   }   12509   }
12510   while (1) {   12510   while (1) {
12511     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   12511     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
12512       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   12512       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
12513                                                    (Char *)"execve(filename)",   12513                                                    (Char *)"execve(filename)",
12514                                                    arrghs->arg1);   12514                                                    arrghs->arg1);
12515     } else {   12515     } else {
12516     12516  
12517     }   12517     }
12518     break;   12518     break;
12519   }   12519   }
12520   if (arrghs->arg2 != 0UL) {   12520   if (arrghs->arg2 != 0UL) {
12521     pre_argv_envp(arrghs->arg2, tid, (Char *)"execve(argv)",   12521     pre_argv_envp(arrghs->arg2, tid, (Char *)"execve(argv)",
12522                   (Char *)"execve(argv[i])");   12522                   (Char *)"execve(argv[i])");
12523   } else {   12523   } else {
12524     12524  
12525   }   12525   }
12526   if (arrghs->arg3 != 0UL) {   12526   if (arrghs->arg3 != 0UL) {
12527     pre_argv_envp(arrghs->arg3, tid, (Char *)"execve(envp)",   12527     pre_argv_envp(arrghs->arg3, tid, (Char *)"execve(envp)",
12528                   (Char *)"execve(envp[i])");   12528                   (Char *)"execve(envp[i])");
12529   } else {   12529   } else {
12530     12530  
12531   }   12531   }
12532   tmp___5 = vgPlain_is_valid_tid(tid);   12532   tmp___5 = vgPlain_is_valid_tid(tid);
12533   if (tmp___5) {   12533   if (tmp___5) {
12534     tmp___6 = 1;   12534     tmp___6 = 1;
12535   } else {   12535   } else {
12536     tmp___6 = 0;   12536     tmp___6 = 0;
12537   }   12537   }
12538   tmp___7 = __builtin_expect((long )tmp___6, 1L);   12538   tmp___7 = __builtin_expect((long )tmp___6, 1L);
12539   if (tmp___7) {   12539   if (tmp___7) {
12540     12540  
12541   } else {   12541   } else {
12542     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",   12542     vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(is_valid_tid)(tid)",
12543                         (Char const   *)"m_syswrap/syswrap-generic.c", 2540,   12543                         (Char const   *)"m_syswrap/syswrap-generic.c", 2540,
12544                         (Char const   *)"vgSysWrap_generic_sys_execve_before",   12544                         (Char const   *)"vgSysWrap_generic_sys_execve_before",
12545                         "");   12545                         "");
12546   }   12546   }
12547   tst = vgPlain_get_ThreadState(tid);   12547   tst = vgPlain_get_ThreadState(tid);
12548   if (arrghs->arg1 == 0UL) {   12548   if (arrghs->arg1 == 0UL) {
12549     goto _L;   12549     goto _L;
12550   } else {   12550   } else {
12551     tmp___10 = vgPlain_am_is_valid_for_client(arrghs->arg1, (SizeT )1, (UInt )1);   12551     tmp___10 = vgPlain_am_is_valid_for_client(arrghs->arg1, (SizeT )1, (UInt )1);
12552     if (tmp___10) {   12552     if (tmp___10) {
12553     12553  
12554     } else {   12554     } else {
12555       _L: /* CIL Label */   12555       _L: /* CIL Label */
12556       while (1) {   12556       while (1) {
12557         wzz = (Word )14;   12557         wzz = (Word )14;
12558         if (wzz >= 0L) {   12558         if (wzz >= 0L) {
12559           if (wzz < 10000L) {   12559           if (wzz < 10000L) {
12560             tmp___8 = 1;   12560             tmp___8 = 1;
12561           } else {   12561           } else {
12562             tmp___8 = 0;   12562             tmp___8 = 0;
12563           }   12563           }
12564         } else {   12564         } else {
12565           tmp___8 = 0;   12565           tmp___8 = 0;
12566         }   12566         }
12567         tmp___9 = __builtin_expect((long )tmp___8, 1L);   12567         tmp___9 = __builtin_expect((long )tmp___8, 1L);
12568         if (tmp___9) {   12568         if (tmp___9) {
12569     12569  
12570         } else {   12570         } else {
12571           vgPlain_assert_fail((Bool )1,   12571           vgPlain_assert_fail((Bool )1,
12572                               (Char const   *)"wzz >= 0 && wzz < 10000",   12572                               (Char const   *)"wzz >= 0 && wzz < 10000",
12573                               (Char const   *)"m_syswrap/syswrap-generic.c",   12573                               (Char const   *)"m_syswrap/syswrap-generic.c",
12574                               2553,   12574                               2553,
12575                               (Char const   *)"vgSysWrap_generic_sys_execve_before",   12575                               (Char const   *)"vgSysWrap_generic_sys_execve_before",
12576                               "");   12576                               "");
12577         }   12577         }
12578         status->what = (enum __anonenum_what_133 )1;   12578         status->what = (enum __anonenum_what_133 )1;
12579         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   12579         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
12580         break;   12580         break;
12581       }   12581       }
12582       return;   12582       return;
12583     }   12583     }
12584   }   12584   }
12585   child_argv = (HChar **)arrghs->arg2;   12585   child_argv = (HChar **)arrghs->arg2;
12586   if (child_argv) {   12586   if (child_argv) {
12587     if ((unsigned int )*(child_argv + 0) == (unsigned int )((void *)0)) {   12587     if ((unsigned int )*(child_argv + 0) == (unsigned int )((void *)0)) {
12588       child_argv = (HChar **)((void *)0);   12588       child_argv = (HChar **)((void *)0);
12589     } else {   12589     } else {
12590     12590  
12591     }   12591     }
12592   } else {   12592   } else {
12593     12593  
12594   }   12594   }
12595   trace_this_child = vgPlain_should_we_trace_this_child((HChar *)arrghs->arg1,   12595   trace_this_child = vgPlain_should_we_trace_this_child((HChar *)arrghs->arg1,
12596                                                         child_argv);   12596                                                         child_argv);
12597   if (trace_this_child) {   12597   if (trace_this_child) {
12598     setuid_allowed = (Bool )0;   12598     setuid_allowed = (Bool )0;
12599   } else {   12599   } else {
12600     setuid_allowed = (Bool )1;   12600     setuid_allowed = (Bool )1;
12601   }   12601   }
12602   res = vgPlain_pre_exec_check((HChar const   *)((Char const   *)arrghs->arg1),   12602   res = vgPlain_pre_exec_check((HChar const   *)((Char const   *)arrghs->arg1),
12603                                (Int *)((void *)0), setuid_allowed);   12603                                (Int *)((void *)0), setuid_allowed);
12604   tmp___14 = sr_isError(res);   12604   tmp___14 = sr_isError(res);
12605   if (tmp___14) {   12605   if (tmp___14) {
12606     while (1) {   12606     while (1) {
12607       tmp___11 = sr_Err(res);   12607       tmp___11 = sr_Err(res);
12608       wzz___0 = (Word )tmp___11;   12608       wzz___0 = (Word )tmp___11;
12609       if (wzz___0 >= 0L) {   12609       if (wzz___0 >= 0L) {
12610         if (wzz___0 < 10000L) {   12610         if (wzz___0 < 10000L) {
12611           tmp___12 = 1;   12611           tmp___12 = 1;
12612         } else {   12612         } else {
12613           tmp___12 = 0;   12613           tmp___12 = 0;
12614         }   12614         }
12615       } else {   12615       } else {
12616         tmp___12 = 0;   12616         tmp___12 = 0;
12617       }   12617       }
12618       tmp___13 = __builtin_expect((long )tmp___12, 1L);   12618       tmp___13 = __builtin_expect((long )tmp___12, 1L);
12619       if (tmp___13) {   12619       if (tmp___13) {
12620     12620  
12621       } else {   12621       } else {
12622         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   12622         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
12623                             (Char const   *)"m_syswrap/syswrap-generic.c", 2587,   12623                             (Char const   *)"m_syswrap/syswrap-generic.c", 2587,
12624                             (Char const   *)"vgSysWrap_generic_sys_execve_before",   12624                             (Char const   *)"vgSysWrap_generic_sys_execve_before",
12625                             "");   12625                             "");
12626       }   12626       }
12627       status->what = (enum __anonenum_what_133 )1;   12627       status->what = (enum __anonenum_what_133 )1;
12628       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___0);   12628       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___0);
12629       break;   12629       break;
12630     }   12630     }
12631     return;   12631     return;
12632   } else {   12632   } else {
12633     12633  
12634   }   12634   }
12635   if (trace_this_child) {   12635   if (trace_this_child) {
12636     if ((unsigned int )vgPlain_name_of_launcher == (unsigned int )((void *)0)) {   12636     if ((unsigned int )vgPlain_name_of_launcher == (unsigned int )((void *)0)) {
12637       goto _L___0;   12637       goto _L___0;
12638     } else   12638     } else
12639     if ((int )*(vgPlain_name_of_launcher + 0) != 47) {   12639     if ((int )*(vgPlain_name_of_launcher + 0) != 47) {
12640       _L___0: /* CIL Label */   12640       _L___0: /* CIL Label */
12641       while (1) {   12641       while (1) {
12642         wzz___1 = (Word )10;   12642         wzz___1 = (Word )10;
12643         if (wzz___1 >= 0L) {   12643         if (wzz___1 >= 0L) {
12644           if (wzz___1 < 10000L) {   12644           if (wzz___1 < 10000L) {
12645             tmp___15 = 1;   12645             tmp___15 = 1;
12646           } else {   12646           } else {
12647             tmp___15 = 0;   12647             tmp___15 = 0;
12648           }   12648           }
12649         } else {   12649         } else {
12650           tmp___15 = 0;   12650           tmp___15 = 0;
12651         }   12651         }
12652         tmp___16 = __builtin_expect((long )tmp___15, 1L);   12652         tmp___16 = __builtin_expect((long )tmp___15, 1L);
12653         if (tmp___16) {   12653         if (tmp___16) {
12654     12654  
12655         } else {   12655         } else {
12656           vgPlain_assert_fail((Bool )1,   12656           vgPlain_assert_fail((Bool )1,
12657                               (Char const   *)"wzz >= 0 && wzz < 10000",   12657                               (Char const   *)"wzz >= 0 && wzz < 10000",
12658                               (Char const   *)"m_syswrap/syswrap-generic.c",   12658                               (Char const   *)"m_syswrap/syswrap-generic.c",
12659                               2597,   12659                               2597,
12660                               (Char const   *)"vgSysWrap_generic_sys_execve_before",   12660                               (Char const   *)"vgSysWrap_generic_sys_execve_before",
12661                               "");   12661                               "");
12662         }   12662         }
12663         status->what = (enum __anonenum_what_133 )1;   12663         status->what = (enum __anonenum_what_133 )1;
12664         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___1);   12664         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___1);
12665         break;   12665         break;
12666       }   12666       }
12667       return;   12667       return;
12668     } else {   12668     } else {
12669     12669  
12670     }   12670     }
12671   } else {   12671   } else {
12672     12672  
12673   }   12673   }
12674   vgPlain_debugLog(1, "syswrap", "Exec of %s\n", (Char *)arrghs->arg1);   12674   vgPlain_debugLog(1, "syswrap", "Exec of %s\n", (Char *)arrghs->arg1);
12675   if ((unsigned int )vgPlain_clo_vgdb != 0U) {   12675   if ((unsigned int )vgPlain_clo_vgdb != 0U) {
12676     vgPlain_gdbserver((ThreadId )0);   12676     vgPlain_gdbserver((ThreadId )0);
12677   } else {   12677   } else {
12678     12678  
12679   }   12679   }
12680   vgPlain_nuke_all_threads_except(tid, (VgSchedReturnCode )1);   12680   vgPlain_nuke_all_threads_except(tid, (VgSchedReturnCode )1);
12681   vgPlain_reap_threads(tid);   12681   vgPlain_reap_threads(tid);
12682   if (trace_this_child) {   12682   if (trace_this_child) {
12683     path = (Char *)vgPlain_name_of_launcher;   12683     path = (Char *)vgPlain_name_of_launcher;
12684     tmp___17 = __builtin_expect((long )(! (! path)), 1L);   12684     tmp___17 = __builtin_expect((long )(! (! path)), 1L);
12685     if (tmp___17) {   12685     if (tmp___17) {
12686     12686  
12687     } else {   12687     } else {
12688       vgPlain_assert_fail((Bool )1, (Char const   *)"path",   12688       vgPlain_assert_fail((Bool )1, (Char const   *)"path",
12689                           (Char const   *)"m_syswrap/syswrap-generic.c", 2628,   12689                           (Char const   *)"m_syswrap/syswrap-generic.c", 2628,
12690                           (Char const   *)"vgSysWrap_generic_sys_execve_before",   12690                           (Char const   *)"vgSysWrap_generic_sys_execve_before",
12691                           "");   12691                           "");
12692     }   12692     }
12693     launcher_basename = vgPlain_strrchr((Char const   *)path, (Char )'/');   12693     launcher_basename = vgPlain_strrchr((Char const   *)path, (Char )'/');
12694     if ((unsigned int )launcher_basename == (unsigned int )((void *)0)) {   12694     if ((unsigned int )launcher_basename == (unsigned int )((void *)0)) {
12695       launcher_basename = path;   12695       launcher_basename = path;
12696     } else   12696     } else
12697     if ((int )*(launcher_basename + 1) == 0) {   12697     if ((int )*(launcher_basename + 1) == 0) {
12698       launcher_basename = path;   12698       launcher_basename = path;
12699     } else {   12699     } else {
12700       launcher_basename ++;   12700       launcher_basename ++;
12701     }   12701     }
12702   } else {   12702   } else {
12703     path = (Char *)arrghs->arg1;   12703     path = (Char *)arrghs->arg1;
12704   }   12704   }
12705   if (arrghs->arg3 == 0UL) {   12705   if (arrghs->arg3 == 0UL) {
12706     envp = (Char **)((void *)0);   12706     envp = (Char **)((void *)0);
12707   } else {   12707   } else {
12708     envp = vgPlain_env_clone((Char **)arrghs->arg3);   12708     envp = vgPlain_env_clone((Char **)arrghs->arg3);
12709     if ((unsigned int )envp == (unsigned int )((void *)0)) {   12709     if ((unsigned int )envp == (unsigned int )((void *)0)) {
12710       goto hosed;   12710       goto hosed;
12711     } else {   12711     } else {
12712     12712  
12713     }   12713     }
12714     vgPlain_env_remove_valgrind_env_stuff(envp);   12714     vgPlain_env_remove_valgrind_env_stuff(envp);
12715   }   12715   }
12716   if (trace_this_child) {   12716   if (trace_this_child) {
12717     vgPlain_env_setenv(& envp, (Char const   *)"VALGRIND_LIB", vgPlain_libdir);   12717     vgPlain_env_setenv(& envp, (Char const   *)"VALGRIND_LIB", vgPlain_libdir);
12718   } else {   12718   } else {
12719     12719  
12720   }   12720   }
12721   if (! trace_this_child) {   12721   if (! trace_this_child) {
12722     argv = (Char **)arrghs->arg2;   12722     argv = (Char **)arrghs->arg2;
12723   } else {   12723   } else {
12724     tmp___18 = __builtin_expect((long )(! (! vgPlain_args_for_valgrind)), 1L);   12724     tmp___18 = __builtin_expect((long )(! (! vgPlain_args_for_valgrind)), 1L);
12725     if (tmp___18) {   12725     if (tmp___18) {
12726     12726  
12727     } else {   12727     } else {
12728       vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(args_for_valgrind)",   12728       vgPlain_assert_fail((Bool )1, (Char const   *)"VG_(args_for_valgrind)",
12729                           (Char const   *)"m_syswrap/syswrap-generic.c", 2676,   12729                           (Char const   *)"m_syswrap/syswrap-generic.c", 2676,
12730                           (Char const   *)"vgSysWrap_generic_sys_execve_before",   12730                           (Char const   *)"vgSysWrap_generic_sys_execve_before",
12731                           "");   12731                           "");
12732     }   12732     }
12733     tmp___19 = __builtin_expect((long )(! (! (vgPlain_args_for_valgrind_noexecpass >= 0))),   12733     tmp___19 = __builtin_expect((long )(! (! (vgPlain_args_for_valgrind_noexecpass >= 0))),
12734                                 1L);   12734                                 1L);
12735     if (tmp___19) {   12735     if (tmp___19) {
12736     12736  
12737     } else {   12737     } else {
12738       vgPlain_assert_fail((Bool )1,   12738       vgPlain_assert_fail((Bool )1,
12739                           (Char const   *)"VG_(args_for_valgrind_noexecpass) >= 0",   12739                           (Char const   *)"VG_(args_for_valgrind_noexecpass) >= 0",
12740                           (Char const   *)"m_syswrap/syswrap-generic.c", 2677,   12740                           (Char const   *)"m_syswrap/syswrap-generic.c", 2677,
12741                           (Char const   *)"vgSysWrap_generic_sys_execve_before",   12741                           (Char const   *)"vgSysWrap_generic_sys_execve_before",
12742                           "");   12742                           "");
12743     }   12743     }
12744     tmp___20 = vgPlain_sizeXA(vgPlain_args_for_valgrind);   12744     tmp___20 = vgPlain_sizeXA(vgPlain_args_for_valgrind);
12745     if ((Word )vgPlain_args_for_valgrind_noexecpass <= tmp___20) {   12745     if ((Word )vgPlain_args_for_valgrind_noexecpass <= tmp___20) {
12746       tmp___21 = 1;   12746       tmp___21 = 1;
12747     } else {   12747     } else {
12748       tmp___21 = 0;   12748       tmp___21 = 0;
12749     }   12749     }
12750     tmp___22 = __builtin_expect((long )tmp___21, 1L);   12750     tmp___22 = __builtin_expect((long )tmp___21, 1L);
12751     if (tmp___22) {   12751     if (tmp___22) {
12752     12752  
12753     } else {   12753     } else {
12754       vgPlain_assert_fail((Bool )1,   12754       vgPlain_assert_fail((Bool )1,
12755                           (Char const   *)"VG_(args_for_valgrind_noexecpass) <= VG_(sizeXA)( VG_(args_for_valgrind) )",   12755                           (Char const   *)"VG_(args_for_valgrind_noexecpass) <= VG_(sizeXA)( VG_(args_for_valgrind) )",
12756                           (Char const   *)"m_syswrap/syswrap-generic.c", 2679,   12756                           (Char const   *)"m_syswrap/syswrap-generic.c", 2679,
12757                           (Char const   *)"vgSysWrap_generic_sys_execve_before",   12757                           (Char const   *)"vgSysWrap_generic_sys_execve_before",
12758                           "");   12758                           "");
12759     }   12759     }
12760     tot_args = 1;   12760     tot_args = 1;
12761     tmp___23 = vgPlain_sizeXA(vgPlain_args_for_valgrind);   12761     tmp___23 = vgPlain_sizeXA(vgPlain_args_for_valgrind);
12762     tot_args = (Int )((Word )tot_args + tmp___23);   12762     tot_args = (Int )((Word )tot_args + tmp___23);
12763     tot_args -= vgPlain_args_for_valgrind_noexecpass;   12763     tot_args -= vgPlain_args_for_valgrind_noexecpass;
12764     tot_args ++;   12764     tot_args ++;
12765     arg2copy = (Char **)arrghs->arg2;   12765     arg2copy = (Char **)arrghs->arg2;
12766     if (arg2copy) {   12766     if (arg2copy) {
12767       if (*(arg2copy + 0)) {   12767       if (*(arg2copy + 0)) {
12768         i = 1;   12768         i = 1;
12769         while (*(arg2copy + i)) {   12769         while (*(arg2copy + i)) {
12770           tot_args ++;   12770           tot_args ++;
12771           i ++;   12771           i ++;
12772         }   12772         }
12773       } else {   12773       } else {
12774     12774  
12775       }   12775       }
12776     } else {   12776     } else {
12777     12777  
12778     }   12778     }
12779     tmp___24 = vgPlain_malloc((HChar *)"di.syswrap.pre_sys_execve.1",   12779     tmp___24 = vgPlain_malloc((HChar *)"di.syswrap.pre_sys_execve.1",
12780                               (SizeT )((unsigned int )(tot_args + 1) * sizeof(HChar *)));   12780                               (SizeT )((unsigned int )(tot_args + 1) * sizeof(HChar *)));
12781     argv = (Char **)tmp___24;   12781     argv = (Char **)tmp___24;
12782     if ((unsigned int )argv == (unsigned int )((Char **)0)) {   12782     if ((unsigned int )argv == (unsigned int )((Char **)0)) {
12783       goto hosed;   12783       goto hosed;
12784     } else {   12784     } else {
12785     12785  
12786     }   12786     }
12787     j = 0;   12787     j = 0;
12788     tmp___25 = j;   12788     tmp___25 = j;
12789     j ++;   12789     j ++;
12790     *(argv + tmp___25) = launcher_basename;   12790     *(argv + tmp___25) = launcher_basename;
12791     i = 0;   12791     i = 0;
12792     while (1) {   12792     while (1) {
12793       tmp___28 = vgPlain_sizeXA(vgPlain_args_for_valgrind);   12793       tmp___28 = vgPlain_sizeXA(vgPlain_args_for_valgrind);
12794       if ((Word )i < tmp___28) {   12794       if ((Word )i < tmp___28) {
12795     12795  
12796       } else {   12796       } else {
12797         break;   12797         break;
12798       }   12798       }
12799       if (i < vgPlain_args_for_valgrind_noexecpass) {   12799       if (i < vgPlain_args_for_valgrind_noexecpass) {
12800         goto __Cont;   12800         goto __Cont;
12801       } else {   12801       } else {
12802     12802  
12803       }   12803       }
12804       tmp___26 = j;   12804       tmp___26 = j;
12805       j ++;   12805       j ++;
12806       tmp___27 = vgPlain_indexXA(vgPlain_args_for_valgrind, (Word )i);   12806       tmp___27 = vgPlain_indexXA(vgPlain_args_for_valgrind, (Word )i);
12807       *(argv + tmp___26) = (Char *)*((HChar **)tmp___27);   12807       *(argv + tmp___26) = (Char *)*((HChar **)tmp___27);
12808       __Cont: /* CIL Label */   12808       __Cont: /* CIL Label */
12809       i ++;   12809       i ++;
12810     }   12810     }
12811     tmp___29 = j;   12811     tmp___29 = j;
12812     j ++;   12812     j ++;
12813     *(argv + tmp___29) = (Char *)arrghs->arg1;   12813     *(argv + tmp___29) = (Char *)arrghs->arg1;
12814     if (arg2copy) {   12814     if (arg2copy) {
12815       if (*(arg2copy + 0)) {   12815       if (*(arg2copy + 0)) {
12816         i = 1;   12816         i = 1;
12817         while (*(arg2copy + i)) {   12817         while (*(arg2copy + i)) {
12818           tmp___30 = j;   12818           tmp___30 = j;
12819           j ++;   12819           j ++;
12820           *(argv + tmp___30) = *(arg2copy + i);   12820           *(argv + tmp___30) = *(arg2copy + i);
12821           i ++;   12821           i ++;
12822         }   12822         }
12823       } else {   12823       } else {
12824     12824  
12825       }   12825       }
12826     } else {   12826     } else {
12827     12827  
12828     }   12828     }
12829     tmp___31 = j;   12829     tmp___31 = j;
12830     j ++;   12830     j ++;
12831     *(argv + tmp___31) = (Char *)((void *)0);   12831     *(argv + tmp___31) = (Char *)((void *)0);
12832     tmp___32 = __builtin_expect((long )(! (! (j == tot_args + 1))), 1L);   12832     tmp___32 = __builtin_expect((long )(! (! (j == tot_args + 1))), 1L);
12833     if (tmp___32) {   12833     if (tmp___32) {
12834     12834  
12835     } else {   12835     } else {
12836       vgPlain_assert_fail((Bool )1, (Char const   *)"j == tot_args+1",   12836       vgPlain_assert_fail((Bool )1, (Char const   *)"j == tot_args+1",
12837                           (Char const   *)"m_syswrap/syswrap-generic.c", 2712,   12837                           (Char const   *)"m_syswrap/syswrap-generic.c", 2712,
12838                           (Char const   *)"vgSysWrap_generic_sys_execve_before",   12838                           (Char const   *)"vgSysWrap_generic_sys_execve_before",
12839                           "");   12839                           "");
12840     }   12840     }
12841   }   12841   }
12842   vgPlain_setrlimit(2,   12842   vgPlain_setrlimit(2,
12843                     (struct vki_rlimit  const  *)(& vgPlain_client_rlimit_data));   12843                     (struct vki_rlimit  const  *)(& vgPlain_client_rlimit_data));
12844   i = 1;   12844   i = 1;
12845   while (i < vgPlain_max_signal) {   12845   while (i < vgPlain_max_signal) {
12846     vgPlain_do_sys_sigaction(i, (vki_sigaction_toK_t const   *)((void *)0),   12846     vgPlain_do_sys_sigaction(i, (vki_sigaction_toK_t const   *)((void *)0),
12847                              & sa_f);   12847                              & sa_f);
12848     vgPlain_convert_sigaction_fromK_to_toK(& sa_f, & sa_t);   12848     vgPlain_convert_sigaction_fromK_to_toK(& sa_f, & sa_t);
12849     if ((unsigned int )sa_t.ksa_handler == (unsigned int )((__vki_sighandler_t )1)) {   12849     if ((unsigned int )sa_t.ksa_handler == (unsigned int )((__vki_sighandler_t )1)) {
12850       vgPlain_sigaction(i, (vki_sigaction_toK_t const   *)(& sa_t),   12850       vgPlain_sigaction(i, (vki_sigaction_toK_t const   *)(& sa_t),
12851                         (vki_sigaction_fromK_t *)((void *)0));   12851                         (vki_sigaction_fromK_t *)((void *)0));
12852     } else {   12852     } else {
12853       sa_t.ksa_handler = (__vki_sighandler_t )0;   12853       sa_t.ksa_handler = (__vki_sighandler_t )0;
12854       vgPlain_sigaction(i, (vki_sigaction_toK_t const   *)(& sa_t),   12854       vgPlain_sigaction(i, (vki_sigaction_toK_t const   *)(& sa_t),
12855                         (vki_sigaction_fromK_t *)((void *)0));   12855                         (vki_sigaction_fromK_t *)((void *)0));
12856     }   12856     }
12857     i ++;   12857     i ++;
12858   }   12858   }
12859   vgPlain_sigfillset(& allsigs);   12859   vgPlain_sigfillset(& allsigs);
12860   while (1) {   12860   while (1) {
12861     tmp___33 = vgPlain_sigtimedwait_zero((vki_sigset_t const   *)(& allsigs),   12861     tmp___33 = vgPlain_sigtimedwait_zero((vki_sigset_t const   *)(& allsigs),
12862                                          & info);   12862                                          & info);
12863     if (tmp___33 > 0) {   12863     if (tmp___33 > 0) {
12864     12864  
12865     } else {   12865     } else {
12866       break;   12866       break;
12867     }   12867     }
12868   }   12868   }
12869   vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& tst->sig_mask),   12869   vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& tst->sig_mask),
12870                       (vki_sigset_t *)((void *)0));   12870                       (vki_sigset_t *)((void *)0));
12871   while (1) {   12871   while (1) {
12872     status->what = (enum __anonenum_what_133 )1;   12872     status->what = (enum __anonenum_what_133 )1;
12873     status->sres = vgPlain_do_syscall((UWord )11, (UWord )path, (UWord )argv,   12873     status->sres = vgPlain_do_syscall((UWord )11, (UWord )path, (UWord )argv,
12874                                       (UWord )envp, (UWord )0, (UWord )0,   12874                                       (UWord )envp, (UWord )0, (UWord )0,
12875                                       (UWord )0, (UWord )0, (UWord )0);   12875                                       (UWord )0, (UWord )0, (UWord )0);
12876     break;   12876     break;
12877   }   12877   }
12878   hosed:   12878   hosed:
12879   if ((unsigned int )status->what == 1U) {   12879   if ((unsigned int )status->what == 1U) {
12880     tmp___34 = sr_isError(status->sres);   12880     tmp___34 = sr_isError(status->sres);
12881     if (tmp___34) {   12881     if (tmp___34) {
12882       tmp___35 = 1;   12882       tmp___35 = 1;
12883     } else {   12883     } else {
12884       tmp___35 = 0;   12884       tmp___35 = 0;
12885     }   12885     }
12886   } else {   12886   } else {
12887     tmp___35 = 0;   12887     tmp___35 = 0;
12888   }   12888   }
12889   tmp___36 = __builtin_expect((long )tmp___35, 1L);   12889   tmp___36 = __builtin_expect((long )tmp___35, 1L);
12890   if (tmp___36) {   12890   if (tmp___36) {
12891     12891  
12892   } else {   12892   } else {
12893     vgPlain_assert_fail((Bool )1, (Char const   *)"FAILURE",   12893     vgPlain_assert_fail((Bool )1, (Char const   *)"FAILURE",
12894                         (Char const   *)"m_syswrap/syswrap-generic.c", 2780,   12894                         (Char const   *)"m_syswrap/syswrap-generic.c", 2780,
12895                         (Char const   *)"vgSysWrap_generic_sys_execve_before",   12895                         (Char const   *)"vgSysWrap_generic_sys_execve_before",
12896                         "");   12896                         "");
12897   }   12897   }
12898   tmp___37 = getERR(status);   12898   tmp___37 = getERR(status);
12899   vgPlain_message((VgMsgKind )1,   12899   vgPlain_message((VgMsgKind )1,
12900                   "execve(%#lx(%s), %#lx, %#lx) failed, errno %ld\n",   12900                   "execve(%#lx(%s), %#lx, %#lx) failed, errno %ld\n",
12901                   arrghs->arg1, (char *)arrghs->arg1, arrghs->arg2,   12901                   arrghs->arg1, (char *)arrghs->arg1, arrghs->arg2,
12902                   arrghs->arg3, tmp___37);   12902                   arrghs->arg3, tmp___37);
12903   vgPlain_message((VgMsgKind )1,   12903   vgPlain_message((VgMsgKind )1,
12904                   "EXEC FAILED: I can\'t recover from execve() failing, so I\'m dying.\n");   12904                   "EXEC FAILED: I can\'t recover from execve() failing, so I\'m dying.\n");
12905   vgPlain_message((VgMsgKind )1,   12905   vgPlain_message((VgMsgKind )1,
12906                   "Add more stringent tests in PRE(sys_execve), or work out how to recover.\n");   12906                   "Add more stringent tests in PRE(sys_execve), or work out how to recover.\n");
12907   vgPlain_exit(101);   12907   vgPlain_exit(101);
12908 }   12908 }
12909 }   12909 }
12910 void vgSysWrap_generic_sys_access_before(ThreadId tid ,   12910 void vgSysWrap_generic_sys_access_before(ThreadId tid ,
12911                                          SyscallArgLayout *layout ,   12911                                          SyscallArgLayout *layout ,
12912                                          SyscallArgs *arrghs ,   12912                                          SyscallArgs *arrghs ,
12913                                          SyscallStatus *status , UWord *flags )   12913                                          SyscallStatus *status , UWord *flags )
12914 {   12914 {
12915   Int here ;   12915   Int here ;
12916   long tmp ;   12916   long tmp ;
12917   long tmp___0 ;   12917   long tmp___0 ;
12918   Int here___0 ;   12918   Int here___0 ;
12919   long tmp___1 ;   12919   long tmp___1 ;
12920   long tmp___2 ;   12920   long tmp___2 ;
12921     12921  
12922   {   12922   {
12923   if (vgPlain_clo_trace_syscalls) {   12923   if (vgPlain_clo_trace_syscalls) {
12924     vgPlain_printf("sys_access ( %#lx(%s), %ld )", arrghs->arg1,   12924     vgPlain_printf("sys_access ( %#lx(%s), %ld )", arrghs->arg1,
12925                    (char *)arrghs->arg1, arrghs->arg2);   12925                    (char *)arrghs->arg1, arrghs->arg2);
12926   } else {   12926   } else {
12927     12927  
12928   }   12928   }
12929   if (vgPlain_tdict.track_pre_reg_read) {   12929   if (vgPlain_tdict.track_pre_reg_read) {
12930     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12930     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12931                                           (Char *)"(syscallno)",   12931                                           (Char *)"(syscallno)",
12932                                           (PtrdiffT )layout->o_sysno,   12932                                           (PtrdiffT )layout->o_sysno,
12933                                           (SizeT )sizeof(UWord ));   12933                                           (SizeT )sizeof(UWord ));
12934     while (1) {   12934     while (1) {
12935       here = layout->o_arg1;   12935       here = layout->o_arg1;
12936       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   12936       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
12937                              1L);   12937                              1L);
12938       if (tmp) {   12938       if (tmp) {
12939     12939  
12940       } else {   12940       } else {
12941         vgPlain_assert_fail((Bool )1,   12941         vgPlain_assert_fail((Bool )1,
12942                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   12942                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
12943                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,   12943                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,
12944                             (Char const   *)"vgSysWrap_generic_sys_access_before",   12944                             (Char const   *)"vgSysWrap_generic_sys_access_before",
12945                             "");   12945                             "");
12946       }   12946       }
12947       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   12947       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
12948       if (tmp___0) {   12948       if (tmp___0) {
12949     12949  
12950       } else {   12950       } else {
12951         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12951         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12952                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,   12952                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,
12953                             (Char const   *)"vgSysWrap_generic_sys_access_before",   12953                             (Char const   *)"vgSysWrap_generic_sys_access_before",
12954                             "");   12954                             "");
12955       }   12955       }
12956       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12956       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12957                                             (Char *)"access(pathname)",   12957                                             (Char *)"access(pathname)",
12958                                             (PtrdiffT )here,   12958                                             (PtrdiffT )here,
12959                                             (SizeT )sizeof(char const   *));   12959                                             (SizeT )sizeof(char const   *));
12960       break;   12960       break;
12961     }   12961     }
12962     while (1) {   12962     while (1) {
12963       here___0 = layout->o_arg2;   12963       here___0 = layout->o_arg2;
12964       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   12964       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
12965                                  1L);   12965                                  1L);
12966       if (tmp___1) {   12966       if (tmp___1) {
12967     12967  
12968       } else {   12968       } else {
12969         vgPlain_assert_fail((Bool )1,   12969         vgPlain_assert_fail((Bool )1,
12970                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   12970                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
12971                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,   12971                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,
12972                             (Char const   *)"vgSysWrap_generic_sys_access_before",   12972                             (Char const   *)"vgSysWrap_generic_sys_access_before",
12973                             "");   12973                             "");
12974       }   12974       }
12975       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   12975       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
12976       if (tmp___2) {   12976       if (tmp___2) {
12977     12977  
12978       } else {   12978       } else {
12979         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   12979         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
12980                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,   12980                             (Char const   *)"m_syswrap/syswrap-generic.c", 2793,
12981                             (Char const   *)"vgSysWrap_generic_sys_access_before",   12981                             (Char const   *)"vgSysWrap_generic_sys_access_before",
12982                             "");   12982                             "");
12983       }   12983       }
12984       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   12984       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
12985                                             (Char *)"access(mode)",   12985                                             (Char *)"access(mode)",
12986                                             (PtrdiffT )here___0,   12986                                             (PtrdiffT )here___0,
12987                                             (SizeT )sizeof(int ));   12987                                             (SizeT )sizeof(int ));
12988       break;   12988       break;
12989     }   12989     }
12990   } else {   12990   } else {
12991     12991  
12992   }   12992   }
12993   while (1) {   12993   while (1) {
12994     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   12994     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
12995       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   12995       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
12996                                                    (Char *)"access(pathname)",   12996                                                    (Char *)"access(pathname)",
12997                                                    arrghs->arg1);   12997                                                    arrghs->arg1);
12998     } else {   12998     } else {
12999     12999  
13000     }   13000     }
13001     break;   13001     break;
13002   }   13002   }
13003   return;   13003   return;
13004 }   13004 }
13005 }   13005 }
13006 void vgSysWrap_generic_sys_alarm_before(ThreadId tid ,   13006 void vgSysWrap_generic_sys_alarm_before(ThreadId tid ,
13007                                         SyscallArgLayout *layout ,   13007                                         SyscallArgLayout *layout ,
13008                                         SyscallArgs *arrghs ,   13008                                         SyscallArgs *arrghs ,
13009                                         SyscallStatus *status , UWord *flags )   13009                                         SyscallStatus *status , UWord *flags )
13010 {   13010 {
13011   Int here ;   13011   Int here ;
13012   long tmp ;   13012   long tmp ;
13013   long tmp___0 ;   13013   long tmp___0 ;
13014     13014  
13015   {   13015   {
13016   if (vgPlain_clo_trace_syscalls) {   13016   if (vgPlain_clo_trace_syscalls) {
13017     vgPlain_printf("sys_alarm ( %ld )", arrghs->arg1);   13017     vgPlain_printf("sys_alarm ( %ld )", arrghs->arg1);
13018   } else {   13018   } else {
13019     13019  
13020   }   13020   }
13021   if (vgPlain_tdict.track_pre_reg_read) {   13021   if (vgPlain_tdict.track_pre_reg_read) {
13022     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13022     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13023                                           (Char *)"(syscallno)",   13023                                           (Char *)"(syscallno)",
13024                                           (PtrdiffT )layout->o_sysno,   13024                                           (PtrdiffT )layout->o_sysno,
13025                                           (SizeT )sizeof(UWord ));   13025                                           (SizeT )sizeof(UWord ));
13026     while (1) {   13026     while (1) {
13027       here = layout->o_arg1;   13027       here = layout->o_arg1;
13028       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   13028       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
13029                              1L);   13029                              1L);
13030       if (tmp) {   13030       if (tmp) {
13031     13031  
13032       } else {   13032       } else {
13033         vgPlain_assert_fail((Bool )1,   13033         vgPlain_assert_fail((Bool )1,
13034                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   13034                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
13035                             (Char const   *)"m_syswrap/syswrap-generic.c", 2800,   13035                             (Char const   *)"m_syswrap/syswrap-generic.c", 2800,
13036                             (Char const   *)"vgSysWrap_generic_sys_alarm_before",   13036                             (Char const   *)"vgSysWrap_generic_sys_alarm_before",
13037                             "");   13037                             "");
13038       }   13038       }
13039       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13039       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13040       if (tmp___0) {   13040       if (tmp___0) {
13041     13041  
13042       } else {   13042       } else {
13043         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13043         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13044                             (Char const   *)"m_syswrap/syswrap-generic.c", 2800,   13044                             (Char const   *)"m_syswrap/syswrap-generic.c", 2800,
13045                             (Char const   *)"vgSysWrap_generic_sys_alarm_before",   13045                             (Char const   *)"vgSysWrap_generic_sys_alarm_before",
13046                             "");   13046                             "");
13047       }   13047       }
13048       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13048       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13049                                             (Char *)"alarm(seconds)",   13049                                             (Char *)"alarm(seconds)",
13050                                             (PtrdiffT )here,   13050                                             (PtrdiffT )here,
13051                                             (SizeT )sizeof(unsigned int ));   13051                                             (SizeT )sizeof(unsigned int ));
13052       break;   13052       break;
13053     }   13053     }
13054   } else {   13054   } else {
13055     13055  
13056   }   13056   }
13057   return;   13057   return;
13058 }   13058 }
13059 }   13059 }
13060 void vgSysWrap_generic_sys_brk_before(ThreadId tid , SyscallArgLayout *layout ,   13060 void vgSysWrap_generic_sys_brk_before(ThreadId tid , SyscallArgLayout *layout ,
13061                                       SyscallArgs *arrghs ,   13061                                       SyscallArgs *arrghs ,
13062                                       SyscallStatus *status , UWord *flags )   13062                                       SyscallStatus *status , UWord *flags )
13063 {   13063 {
13064   Addr brk_limit ;   13064   Addr brk_limit ;
13065   Addr brk_new ;   13065   Addr brk_new ;
13066   Int here ;   13066   Int here ;
13067   long tmp ;   13067   long tmp ;
13068   long tmp___0 ;   13068   long tmp___0 ;
13069   long tmp___1 ;   13069   long tmp___1 ;
13070     13070  
13071   {   13071   {
13072   brk_limit = vgPlain_brk_limit;   13072   brk_limit = vgPlain_brk_limit;
13073   if (vgPlain_clo_trace_syscalls) {   13073   if (vgPlain_clo_trace_syscalls) {
13074     vgPlain_printf("sys_brk ( %#lx )", arrghs->arg1);   13074     vgPlain_printf("sys_brk ( %#lx )", arrghs->arg1);
13075   } else {   13075   } else {
13076     13076  
13077   }   13077   }
13078   if (vgPlain_tdict.track_pre_reg_read) {   13078   if (vgPlain_tdict.track_pre_reg_read) {
13079     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13079     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13080                                           (Char *)"(syscallno)",   13080                                           (Char *)"(syscallno)",
13081                                           (PtrdiffT )layout->o_sysno,   13081                                           (PtrdiffT )layout->o_sysno,
13082                                           (SizeT )sizeof(UWord ));   13082                                           (SizeT )sizeof(UWord ));
13083     while (1) {   13083     while (1) {
13084       here = layout->o_arg1;   13084       here = layout->o_arg1;
13085       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   13085       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
13086                              1L);   13086                              1L);
13087       if (tmp) {   13087       if (tmp) {
13088     13088  
13089       } else {   13089       } else {
13090         vgPlain_assert_fail((Bool )1,   13090         vgPlain_assert_fail((Bool )1,
13091                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   13091                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
13092                             (Char const   *)"m_syswrap/syswrap-generic.c", 2824,   13092                             (Char const   *)"m_syswrap/syswrap-generic.c", 2824,
13093                             (Char const   *)"vgSysWrap_generic_sys_brk_before",   13093                             (Char const   *)"vgSysWrap_generic_sys_brk_before",
13094                             "");   13094                             "");
13095       }   13095       }
13096       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13096       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13097       if (tmp___0) {   13097       if (tmp___0) {
13098     13098  
13099       } else {   13099       } else {
13100         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13100         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13101                             (Char const   *)"m_syswrap/syswrap-generic.c", 2824,   13101                             (Char const   *)"m_syswrap/syswrap-generic.c", 2824,
13102                             (Char const   *)"vgSysWrap_generic_sys_brk_before",   13102                             (Char const   *)"vgSysWrap_generic_sys_brk_before",
13103                             "");   13103                             "");
13104       }   13104       }
13105       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13105       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13106                                             (Char *)"brk(end_data_segment)",   13106                                             (Char *)"brk(end_data_segment)",
13107                                             (PtrdiffT )here,   13107                                             (PtrdiffT )here,
13108                                             (SizeT )sizeof(unsigned long ));   13108                                             (SizeT )sizeof(unsigned long ));
13109       break;   13109       break;
13110     }   13110     }
13111   } else {   13111   } else {
13112     13112  
13113   }   13113   }
13114   brk_new = do_brk(arrghs->arg1);   13114   brk_new = do_brk(arrghs->arg1);
13115   while (1) {   13115   while (1) {
13116     status->what = (enum __anonenum_what_133 )1;   13116     status->what = (enum __anonenum_what_133 )1;
13117     status->sres = vgPlain_mk_SysRes_Success(brk_new);   13117     status->sres = vgPlain_mk_SysRes_Success(brk_new);
13118     break;   13118     break;
13119   }   13119   }
13120   if (brk_new == arrghs->arg1) {   13120   if (brk_new == arrghs->arg1) {
13121     if (brk_new < brk_limit) {   13121     if (brk_new < brk_limit) {
13122       while (1) {   13122       while (1) {
13123         if (vgPlain_tdict.track_die_mem_brk) {   13123         if (vgPlain_tdict.track_die_mem_brk) {
13124           (*(vgPlain_tdict.track_die_mem_brk))(arrghs->arg1,   13124           (*(vgPlain_tdict.track_die_mem_brk))(arrghs->arg1,
13125                                                brk_limit - arrghs->arg1);   13125                                                brk_limit - arrghs->arg1);
13126         } else {   13126         } else {
13127     13127  
13128         }   13128         }
13129         break;   13129         break;
13130       }   13130       }
13131     } else   13131     } else
13132     if (brk_new > brk_limit) {   13132     if (brk_new > brk_limit) {
13133       while (1) {   13133       while (1) {
13134         if (vgPlain_tdict.track_new_mem_brk) {   13134         if (vgPlain_tdict.track_new_mem_brk) {
13135           (*(vgPlain_tdict.track_new_mem_brk))(brk_limit,   13135           (*(vgPlain_tdict.track_new_mem_brk))(brk_limit,
13136                                                arrghs->arg1 - brk_limit, tid);   13136                                                arrghs->arg1 - brk_limit, tid);
13137         } else {   13137         } else {
13138     13138  
13139         }   13139         }
13140         break;   13140         break;
13141       }   13141       }
13142     } else {   13142     } else {
13143     13143  
13144     }   13144     }
13145   } else {   13145   } else {
13146     tmp___1 = __builtin_expect((long )(! (! (brk_limit == brk_new))), 1L);   13146     tmp___1 = __builtin_expect((long )(! (! (brk_limit == brk_new))), 1L);
13147     if (tmp___1) {   13147     if (tmp___1) {
13148     13148  
13149     } else {   13149     } else {
13150       vgPlain_assert_fail((Bool )1, (Char const   *)"brk_limit == brk_new",   13150       vgPlain_assert_fail((Bool )1, (Char const   *)"brk_limit == brk_new",
13151                           (Char const   *)"m_syswrap/syswrap-generic.c", 2843,   13151                           (Char const   *)"m_syswrap/syswrap-generic.c", 2843,
13152                           (Char const   *)"vgSysWrap_generic_sys_brk_before", "");   13152                           (Char const   *)"vgSysWrap_generic_sys_brk_before", "");
13153     }   13153     }
13154   }   13154   }
13155   return;   13155   return;
13156 }   13156 }
13157 }   13157 }
13158 void vgSysWrap_generic_sys_chdir_before(ThreadId tid ,   13158 void vgSysWrap_generic_sys_chdir_before(ThreadId tid ,
13159                                         SyscallArgLayout *layout ,   13159                                         SyscallArgLayout *layout ,
13160                                         SyscallArgs *arrghs ,   13160                                         SyscallArgs *arrghs ,
13161                                         SyscallStatus *status , UWord *flags )   13161                                         SyscallStatus *status , UWord *flags )
13162 {   13162 {
13163   Char *tmp ;   13163   Char *tmp ;
13164   Int here ;   13164   Int here ;
13165   long tmp___0 ;   13165   long tmp___0 ;
13166   long tmp___1 ;   13166   long tmp___1 ;
13167     13167  
13168   {   13168   {
13169   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   13169   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
13170                        (Char *)"fuse-compatible");   13170                        (Char *)"fuse-compatible");
13171   if (tmp) {   13171   if (tmp) {
13172     *flags |= (unsigned long )(1 << 1);   13172     *flags |= (unsigned long )(1 << 1);
13173   } else {   13173   } else {
13174     13174  
13175   }   13175   }
13176   if (vgPlain_clo_trace_syscalls) {   13176   if (vgPlain_clo_trace_syscalls) {
13177     vgPlain_printf("sys_chdir ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);   13177     vgPlain_printf("sys_chdir ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);
13178   } else {   13178   } else {
13179     13179  
13180   }   13180   }
13181   if (vgPlain_tdict.track_pre_reg_read) {   13181   if (vgPlain_tdict.track_pre_reg_read) {
13182     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13182     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13183                                           (Char *)"(syscallno)",   13183                                           (Char *)"(syscallno)",
13184                                           (PtrdiffT )layout->o_sysno,   13184                                           (PtrdiffT )layout->o_sysno,
13185                                           (SizeT )sizeof(UWord ));   13185                                           (SizeT )sizeof(UWord ));
13186     while (1) {   13186     while (1) {
13187       here = layout->o_arg1;   13187       here = layout->o_arg1;
13188       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   13188       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
13189                                  1L);   13189                                  1L);
13190       if (tmp___0) {   13190       if (tmp___0) {
13191     13191  
13192       } else {   13192       } else {
13193         vgPlain_assert_fail((Bool )1,   13193         vgPlain_assert_fail((Bool )1,
13194                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   13194                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
13195                             (Char const   *)"m_syswrap/syswrap-generic.c", 2851,   13195                             (Char const   *)"m_syswrap/syswrap-generic.c", 2851,
13196                             (Char const   *)"vgSysWrap_generic_sys_chdir_before",   13196                             (Char const   *)"vgSysWrap_generic_sys_chdir_before",
13197                             "");   13197                             "");
13198       }   13198       }
13199       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13199       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13200       if (tmp___1) {   13200       if (tmp___1) {
13201     13201  
13202       } else {   13202       } else {
13203         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13203         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13204                             (Char const   *)"m_syswrap/syswrap-generic.c", 2851,   13204                             (Char const   *)"m_syswrap/syswrap-generic.c", 2851,
13205                             (Char const   *)"vgSysWrap_generic_sys_chdir_before",   13205                             (Char const   *)"vgSysWrap_generic_sys_chdir_before",
13206                             "");   13206                             "");
13207       }   13207       }
13208       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13208       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13209                                             (Char *)"chdir(path)",   13209                                             (Char *)"chdir(path)",
13210                                             (PtrdiffT )here,   13210                                             (PtrdiffT )here,
13211                                             (SizeT )sizeof(char const   *));   13211                                             (SizeT )sizeof(char const   *));
13212       break;   13212       break;
13213     }   13213     }
13214   } else {   13214   } else {
13215     13215  
13216   }   13216   }
13217   while (1) {   13217   while (1) {
13218     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   13218     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
13219       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   13219       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
13220                                                    (Char *)"chdir(path)",   13220                                                    (Char *)"chdir(path)",
13221                                                    arrghs->arg1);   13221                                                    arrghs->arg1);
13222     } else {   13222     } else {
13223     13223  
13224     }   13224     }
13225     break;   13225     break;
13226   }   13226   }
13227   return;   13227   return;
13228 }   13228 }
13229 }   13229 }
13230 void vgSysWrap_generic_sys_chmod_before(ThreadId tid ,   13230 void vgSysWrap_generic_sys_chmod_before(ThreadId tid ,
13231                                         SyscallArgLayout *layout ,   13231                                         SyscallArgLayout *layout ,
13232                                         SyscallArgs *arrghs ,   13232                                         SyscallArgs *arrghs ,
13233                                         SyscallStatus *status , UWord *flags )   13233                                         SyscallStatus *status , UWord *flags )
13234 {   13234 {
13235   Char *tmp ;   13235   Char *tmp ;
13236   Int here ;   13236   Int here ;
13237   long tmp___0 ;   13237   long tmp___0 ;
13238   long tmp___1 ;   13238   long tmp___1 ;
13239   Int here___0 ;   13239   Int here___0 ;
13240   long tmp___2 ;   13240   long tmp___2 ;
13241   long tmp___3 ;   13241   long tmp___3 ;
13242     13242  
13243   {   13243   {
13244   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   13244   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
13245                        (Char *)"fuse-compatible");   13245                        (Char *)"fuse-compatible");
13246   if (tmp) {   13246   if (tmp) {
13247     *flags |= (unsigned long )(1 << 1);   13247     *flags |= (unsigned long )(1 << 1);
13248   } else {   13248   } else {
13249     13249  
13250   }   13250   }
13251   if (vgPlain_clo_trace_syscalls) {   13251   if (vgPlain_clo_trace_syscalls) {
13252     vgPlain_printf("sys_chmod ( %#lx(%s), %ld )", arrghs->arg1,   13252     vgPlain_printf("sys_chmod ( %#lx(%s), %ld )", arrghs->arg1,
13253                    (char *)arrghs->arg1, arrghs->arg2);   13253                    (char *)arrghs->arg1, arrghs->arg2);
13254   } else {   13254   } else {
13255     13255  
13256   }   13256   }
13257   if (vgPlain_tdict.track_pre_reg_read) {   13257   if (vgPlain_tdict.track_pre_reg_read) {
13258     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13258     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13259                                           (Char *)"(syscallno)",   13259                                           (Char *)"(syscallno)",
13260                                           (PtrdiffT )layout->o_sysno,   13260                                           (PtrdiffT )layout->o_sysno,
13261                                           (SizeT )sizeof(UWord ));   13261                                           (SizeT )sizeof(UWord ));
13262     while (1) {   13262     while (1) {
13263       here = layout->o_arg1;   13263       here = layout->o_arg1;
13264       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   13264       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
13265                                  1L);   13265                                  1L);
13266       if (tmp___0) {   13266       if (tmp___0) {
13267     13267  
13268       } else {   13268       } else {
13269         vgPlain_assert_fail((Bool )1,   13269         vgPlain_assert_fail((Bool )1,
13270                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   13270                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
13271                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,   13271                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,
13272                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",   13272                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",
13273                             "");   13273                             "");
13274       }   13274       }
13275       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13275       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13276       if (tmp___1) {   13276       if (tmp___1) {
13277     13277  
13278       } else {   13278       } else {
13279         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13279         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13280                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,   13280                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,
13281                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",   13281                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",
13282                             "");   13282                             "");
13283       }   13283       }
13284       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13284       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13285                                             (Char *)"chmod(path)",   13285                                             (Char *)"chmod(path)",
13286                                             (PtrdiffT )here,   13286                                             (PtrdiffT )here,
13287                                             (SizeT )sizeof(char const   *));   13287                                             (SizeT )sizeof(char const   *));
13288       break;   13288       break;
13289     }   13289     }
13290     while (1) {   13290     while (1) {
13291       here___0 = layout->o_arg2;   13291       here___0 = layout->o_arg2;
13292       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_mode_t ) <= sizeof(UWord )))),   13292       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_mode_t ) <= sizeof(UWord )))),
13293                                  1L);   13293                                  1L);
13294       if (tmp___2) {   13294       if (tmp___2) {
13295     13295  
13296       } else {   13296       } else {
13297         vgPlain_assert_fail((Bool )1,   13297         vgPlain_assert_fail((Bool )1,
13298                             (Char const   *)"sizeof(vki_mode_t) <= sizeof(UWord)",   13298                             (Char const   *)"sizeof(vki_mode_t) <= sizeof(UWord)",
13299                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,   13299                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,
13300                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",   13300                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",
13301                             "");   13301                             "");
13302       }   13302       }
13303       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   13303       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
13304       if (tmp___3) {   13304       if (tmp___3) {
13305     13305  
13306       } else {   13306       } else {
13307         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13307         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13308                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,   13308                             (Char const   *)"m_syswrap/syswrap-generic.c", 2859,
13309                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",   13309                             (Char const   *)"vgSysWrap_generic_sys_chmod_before",
13310                             "");   13310                             "");
13311       }   13311       }
13312       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13312       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13313                                             (Char *)"chmod(mode)",   13313                                             (Char *)"chmod(mode)",
13314                                             (PtrdiffT )here___0,   13314                                             (PtrdiffT )here___0,
13315                                             (SizeT )sizeof(vki_mode_t ));   13315                                             (SizeT )sizeof(vki_mode_t ));
13316       break;   13316       break;
13317     }   13317     }
13318   } else {   13318   } else {
13319     13319  
13320   }   13320   }
13321   while (1) {   13321   while (1) {
13322     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   13322     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
13323       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   13323       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
13324                                                    (Char *)"chmod(path)",   13324                                                    (Char *)"chmod(path)",
13325                                                    arrghs->arg1);   13325                                                    arrghs->arg1);
13326     } else {   13326     } else {
13327     13327  
13328     }   13328     }
13329     break;   13329     break;
13330   }   13330   }
13331   return;   13331   return;
13332 }   13332 }
13333 }   13333 }
13334 void vgSysWrap_generic_sys_chown_before(ThreadId tid ,   13334 void vgSysWrap_generic_sys_chown_before(ThreadId tid ,
13335                                         SyscallArgLayout *layout ,   13335                                         SyscallArgLayout *layout ,
13336                                         SyscallArgs *arrghs ,   13336                                         SyscallArgs *arrghs ,
13337                                         SyscallStatus *status , UWord *flags )   13337                                         SyscallStatus *status , UWord *flags )
13338 {   13338 {
13339   Char *tmp ;   13339   Char *tmp ;
13340   Int here ;   13340   Int here ;
13341   long tmp___0 ;   13341   long tmp___0 ;
13342   long tmp___1 ;   13342   long tmp___1 ;
13343   Int here___0 ;   13343   Int here___0 ;
13344   long tmp___2 ;   13344   long tmp___2 ;
13345   long tmp___3 ;   13345   long tmp___3 ;
13346   Int here___1 ;   13346   Int here___1 ;
13347   long tmp___4 ;   13347   long tmp___4 ;
13348   long tmp___5 ;   13348   long tmp___5 ;
13349     13349  
13350   {   13350   {
13351   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   13351   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
13352                        (Char *)"fuse-compatible");   13352                        (Char *)"fuse-compatible");
13353   if (tmp) {   13353   if (tmp) {
13354     *flags |= (unsigned long )(1 << 1);   13354     *flags |= (unsigned long )(1 << 1);
13355   } else {   13355   } else {
13356     13356  
13357   }   13357   }
13358   if (vgPlain_clo_trace_syscalls) {   13358   if (vgPlain_clo_trace_syscalls) {
13359     vgPlain_printf("sys_chown ( %#lx(%s), 0x%lx, 0x%lx )", arrghs->arg1,   13359     vgPlain_printf("sys_chown ( %#lx(%s), 0x%lx, 0x%lx )", arrghs->arg1,
13360                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);   13360                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);
13361   } else {   13361   } else {
13362     13362  
13363   }   13363   }
13364   if (vgPlain_tdict.track_pre_reg_read) {   13364   if (vgPlain_tdict.track_pre_reg_read) {
13365     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13365     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13366                                           (Char *)"(syscallno)",   13366                                           (Char *)"(syscallno)",
13367                                           (PtrdiffT )layout->o_sysno,   13367                                           (PtrdiffT )layout->o_sysno,
13368                                           (SizeT )sizeof(UWord ));   13368                                           (SizeT )sizeof(UWord ));
13369     while (1) {   13369     while (1) {
13370       here = layout->o_arg1;   13370       here = layout->o_arg1;
13371       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   13371       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
13372                                  1L);   13372                                  1L);
13373       if (tmp___0) {   13373       if (tmp___0) {
13374     13374  
13375       } else {   13375       } else {
13376         vgPlain_assert_fail((Bool )1,   13376         vgPlain_assert_fail((Bool )1,
13377                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   13377                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
13378                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,   13378                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,
13379                             (Char const   *)"vgSysWrap_generic_sys_chown_before",   13379                             (Char const   *)"vgSysWrap_generic_sys_chown_before",
13380                             "");   13380                             "");
13381       }   13381       }
13382       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13382       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13383       if (tmp___1) {   13383       if (tmp___1) {
13384     13384  
13385       } else {   13385       } else {
13386         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13386         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13387                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,   13387                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,
13388                             (Char const   *)"vgSysWrap_generic_sys_chown_before",   13388                             (Char const   *)"vgSysWrap_generic_sys_chown_before",
13389                             "");   13389                             "");
13390       }   13390       }
13391       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13391       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13392                                             (Char *)"chown(path)",   13392                                             (Char *)"chown(path)",
13393                                             (PtrdiffT )here,   13393                                             (PtrdiffT )here,
13394                                             (SizeT )sizeof(char const   *));   13394                                             (SizeT )sizeof(char const   *));
13395       break;   13395       break;
13396     }   13396     }
13397     while (1) {   13397     while (1) {
13398       here___0 = layout->o_arg2;   13398       here___0 = layout->o_arg2;
13399       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),   13399       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),
13400                                  1L);   13400                                  1L);
13401       if (tmp___2) {   13401       if (tmp___2) {
13402     13402  
13403       } else {   13403       } else {
13404         vgPlain_assert_fail((Bool )1,   13404         vgPlain_assert_fail((Bool )1,
13405                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",   13405                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",
13406                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,   13406                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,
13407                             (Char const   *)"vgSysWrap_generic_sys_chown_before",   13407                             (Char const   *)"vgSysWrap_generic_sys_chown_before",
13408                             "");   13408                             "");
13409       }   13409       }
13410       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   13410       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
13411       if (tmp___3) {   13411       if (tmp___3) {
13412     13412  
13413       } else {   13413       } else {
13414         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13414         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13415                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,   13415                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,
13416                             (Char const   *)"vgSysWrap_generic_sys_chown_before",   13416                             (Char const   *)"vgSysWrap_generic_sys_chown_before",
13417                             "");   13417                             "");
13418       }   13418       }
13419       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13419       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13420                                             (Char *)"chown(owner)",   13420                                             (Char *)"chown(owner)",
13421                                             (PtrdiffT )here___0,   13421                                             (PtrdiffT )here___0,
13422                                             (SizeT )sizeof(vki_uid_t ));   13422                                             (SizeT )sizeof(vki_uid_t ));
13423       break;   13423       break;
13424     }   13424     }
13425     while (1) {   13425     while (1) {
13426       here___1 = layout->o_arg3;   13426       here___1 = layout->o_arg3;
13427       tmp___4 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),   13427       tmp___4 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),
13428                                  1L);   13428                                  1L);
13429       if (tmp___4) {   13429       if (tmp___4) {
13430     13430  
13431       } else {   13431       } else {
13432         vgPlain_assert_fail((Bool )1,   13432         vgPlain_assert_fail((Bool )1,
13433                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",   13433                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",
13434                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,   13434                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,
13435                             (Char const   *)"vgSysWrap_generic_sys_chown_before",   13435                             (Char const   *)"vgSysWrap_generic_sys_chown_before",
13436                             "");   13436                             "");
13437       }   13437       }
13438       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   13438       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
13439       if (tmp___5) {   13439       if (tmp___5) {
13440     13440  
13441       } else {   13441       } else {
13442         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13442         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13443                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,   13443                             (Char const   *)"m_syswrap/syswrap-generic.c", 2868,
13444                             (Char const   *)"vgSysWrap_generic_sys_chown_before",   13444                             (Char const   *)"vgSysWrap_generic_sys_chown_before",
13445                             "");   13445                             "");
13446       }   13446       }
13447       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13447       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13448                                             (Char *)"chown(group)",   13448                                             (Char *)"chown(group)",
13449                                             (PtrdiffT )here___1,   13449                                             (PtrdiffT )here___1,
13450                                             (SizeT )sizeof(vki_gid_t ));   13450                                             (SizeT )sizeof(vki_gid_t ));
13451       break;   13451       break;
13452     }   13452     }
13453   } else {   13453   } else {
13454     13454  
13455   }   13455   }
13456   while (1) {   13456   while (1) {
13457     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   13457     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
13458       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   13458       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
13459                                                    (Char *)"chown(path)",   13459                                                    (Char *)"chown(path)",
13460                                                    arrghs->arg1);   13460                                                    arrghs->arg1);
13461     } else {   13461     } else {
13462     13462  
13463     }   13463     }
13464     break;   13464     break;
13465   }   13465   }
13466   return;   13466   return;
13467 }   13467 }
13468 }   13468 }
13469 void vgSysWrap_generic_sys_lchown_before(ThreadId tid ,   13469 void vgSysWrap_generic_sys_lchown_before(ThreadId tid ,
13470                                          SyscallArgLayout *layout ,   13470                                          SyscallArgLayout *layout ,
13471                                          SyscallArgs *arrghs ,   13471                                          SyscallArgs *arrghs ,
13472                                          SyscallStatus *status , UWord *flags )   13472                                          SyscallStatus *status , UWord *flags )
13473 {   13473 {
13474   Char *tmp ;   13474   Char *tmp ;
13475   Int here ;   13475   Int here ;
13476   long tmp___0 ;   13476   long tmp___0 ;
13477   long tmp___1 ;   13477   long tmp___1 ;
13478   Int here___0 ;   13478   Int here___0 ;
13479   long tmp___2 ;   13479   long tmp___2 ;
13480   long tmp___3 ;   13480   long tmp___3 ;
13481   Int here___1 ;   13481   Int here___1 ;
13482   long tmp___4 ;   13482   long tmp___4 ;
13483   long tmp___5 ;   13483   long tmp___5 ;
13484     13484  
13485   {   13485   {
13486   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   13486   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
13487                        (Char *)"fuse-compatible");   13487                        (Char *)"fuse-compatible");
13488   if (tmp) {   13488   if (tmp) {
13489     *flags |= (unsigned long )(1 << 1);   13489     *flags |= (unsigned long )(1 << 1);
13490   } else {   13490   } else {
13491     13491  
13492   }   13492   }
13493   if (vgPlain_clo_trace_syscalls) {   13493   if (vgPlain_clo_trace_syscalls) {
13494     vgPlain_printf("sys_lchown ( %#lx(%s), 0x%lx, 0x%lx )", arrghs->arg1,   13494     vgPlain_printf("sys_lchown ( %#lx(%s), 0x%lx, 0x%lx )", arrghs->arg1,
13495                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);   13495                    (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);
13496   } else {   13496   } else {
13497     13497  
13498   }   13498   }
13499   if (vgPlain_tdict.track_pre_reg_read) {   13499   if (vgPlain_tdict.track_pre_reg_read) {
13500     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13500     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13501                                           (Char *)"(syscallno)",   13501                                           (Char *)"(syscallno)",
13502                                           (PtrdiffT )layout->o_sysno,   13502                                           (PtrdiffT )layout->o_sysno,
13503                                           (SizeT )sizeof(UWord ));   13503                                           (SizeT )sizeof(UWord ));
13504     while (1) {   13504     while (1) {
13505       here = layout->o_arg1;   13505       here = layout->o_arg1;
13506       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   13506       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
13507                                  1L);   13507                                  1L);
13508       if (tmp___0) {   13508       if (tmp___0) {
13509     13509  
13510       } else {   13510       } else {
13511         vgPlain_assert_fail((Bool )1,   13511         vgPlain_assert_fail((Bool )1,
13512                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   13512                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
13513                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,   13513                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,
13514                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",   13514                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",
13515                             "");   13515                             "");
13516       }   13516       }
13517       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13517       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13518       if (tmp___1) {   13518       if (tmp___1) {
13519     13519  
13520       } else {   13520       } else {
13521         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13521         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13522                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,   13522                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,
13523                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",   13523                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",
13524                             "");   13524                             "");
13525       }   13525       }
13526       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13526       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13527                                             (Char *)"lchown(path)",   13527                                             (Char *)"lchown(path)",
13528                                             (PtrdiffT )here,   13528                                             (PtrdiffT )here,
13529                                             (SizeT )sizeof(char const   *));   13529                                             (SizeT )sizeof(char const   *));
13530       break;   13530       break;
13531     }   13531     }
13532     while (1) {   13532     while (1) {
13533       here___0 = layout->o_arg2;   13533       here___0 = layout->o_arg2;
13534       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),   13534       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),
13535                                  1L);   13535                                  1L);
13536       if (tmp___2) {   13536       if (tmp___2) {
13537     13537  
13538       } else {   13538       } else {
13539         vgPlain_assert_fail((Bool )1,   13539         vgPlain_assert_fail((Bool )1,
13540                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",   13540                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",
13541                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,   13541                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,
13542                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",   13542                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",
13543                             "");   13543                             "");
13544       }   13544       }
13545       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   13545       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
13546       if (tmp___3) {   13546       if (tmp___3) {
13547     13547  
13548       } else {   13548       } else {
13549         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13549         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13550                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,   13550                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,
13551                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",   13551                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",
13552                             "");   13552                             "");
13553       }   13553       }
13554       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13554       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13555                                             (Char *)"lchown(owner)",   13555                                             (Char *)"lchown(owner)",
13556                                             (PtrdiffT )here___0,   13556                                             (PtrdiffT )here___0,
13557                                             (SizeT )sizeof(vki_uid_t ));   13557                                             (SizeT )sizeof(vki_uid_t ));
13558       break;   13558       break;
13559     }   13559     }
13560     while (1) {   13560     while (1) {
13561       here___1 = layout->o_arg3;   13561       here___1 = layout->o_arg3;
13562       tmp___4 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),   13562       tmp___4 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),
13563                                  1L);   13563                                  1L);
13564       if (tmp___4) {   13564       if (tmp___4) {
13565     13565  
13566       } else {   13566       } else {
13567         vgPlain_assert_fail((Bool )1,   13567         vgPlain_assert_fail((Bool )1,
13568                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",   13568                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",
13569                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,   13569                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,
13570                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",   13570                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",
13571                             "");   13571                             "");
13572       }   13572       }
13573       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   13573       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
13574       if (tmp___5) {   13574       if (tmp___5) {
13575     13575  
13576       } else {   13576       } else {
13577         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13577         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13578                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,   13578                             (Char const   *)"m_syswrap/syswrap-generic.c", 2877,
13579                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",   13579                             (Char const   *)"vgSysWrap_generic_sys_lchown_before",
13580                             "");   13580                             "");
13581       }   13581       }
13582       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13582       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13583                                             (Char *)"lchown(group)",   13583                                             (Char *)"lchown(group)",
13584                                             (PtrdiffT )here___1,   13584                                             (PtrdiffT )here___1,
13585                                             (SizeT )sizeof(vki_gid_t ));   13585                                             (SizeT )sizeof(vki_gid_t ));
13586       break;   13586       break;
13587     }   13587     }
13588   } else {   13588   } else {
13589     13589  
13590   }   13590   }
13591   while (1) {   13591   while (1) {
13592     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   13592     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
13593       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   13593       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
13594                                                    (Char *)"lchown(path)",   13594                                                    (Char *)"lchown(path)",
13595                                                    arrghs->arg1);   13595                                                    arrghs->arg1);
13596     } else {   13596     } else {
13597     13597  
13598     }   13598     }
13599     break;   13599     break;
13600   }   13600   }
13601   return;   13601   return;
13602 }   13602 }
13603 }   13603 }
13604 void vgSysWrap_generic_sys_close_before(ThreadId tid ,   13604 void vgSysWrap_generic_sys_close_before(ThreadId tid ,
13605                                         SyscallArgLayout *layout ,   13605                                         SyscallArgLayout *layout ,
13606                                         SyscallArgs *arrghs ,   13606                                         SyscallArgs *arrghs ,
13607                                         SyscallStatus *status , UWord *flags )   13607                                         SyscallStatus *status , UWord *flags )
13608 {   13608 {
13609   Char *tmp ;   13609   Char *tmp ;
13610   Int here ;   13610   Int here ;
13611   long tmp___0 ;   13611   long tmp___0 ;
13612   long tmp___1 ;   13612   long tmp___1 ;
13613   Word wzz ;   13613   Word wzz ;
13614   int tmp___2 ;   13614   int tmp___2 ;
13615   long tmp___3 ;   13615   long tmp___3 ;
13616   Bool tmp___4 ;   13616   Bool tmp___4 ;
13617   Int tmp___5 ;   13617   Int tmp___5 ;
13618     13618  
13619   {   13619   {
13620   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   13620   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
13621                        (Char *)"fuse-compatible");   13621                        (Char *)"fuse-compatible");
13622   if (tmp) {   13622   if (tmp) {
13623     *flags |= (unsigned long )(1 << 1);   13623     *flags |= (unsigned long )(1 << 1);
13624   } else {   13624   } else {
13625     13625  
13626   }   13626   }
13627   if (vgPlain_clo_trace_syscalls) {   13627   if (vgPlain_clo_trace_syscalls) {
13628     vgPlain_printf("sys_close ( %ld )", arrghs->arg1);   13628     vgPlain_printf("sys_close ( %ld )", arrghs->arg1);
13629   } else {   13629   } else {
13630     13630  
13631   }   13631   }
13632   if (vgPlain_tdict.track_pre_reg_read) {   13632   if (vgPlain_tdict.track_pre_reg_read) {
13633     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13633     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13634                                           (Char *)"(syscallno)",   13634                                           (Char *)"(syscallno)",
13635                                           (PtrdiffT )layout->o_sysno,   13635                                           (PtrdiffT )layout->o_sysno,
13636                                           (SizeT )sizeof(UWord ));   13636                                           (SizeT )sizeof(UWord ));
13637     while (1) {   13637     while (1) {
13638       here = layout->o_arg1;   13638       here = layout->o_arg1;
13639       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   13639       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
13640                                  1L);   13640                                  1L);
13641       if (tmp___0) {   13641       if (tmp___0) {
13642     13642  
13643       } else {   13643       } else {
13644         vgPlain_assert_fail((Bool )1,   13644         vgPlain_assert_fail((Bool )1,
13645                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   13645                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
13646                             (Char const   *)"m_syswrap/syswrap-generic.c", 2885,   13646                             (Char const   *)"m_syswrap/syswrap-generic.c", 2885,
13647                             (Char const   *)"vgSysWrap_generic_sys_close_before",   13647                             (Char const   *)"vgSysWrap_generic_sys_close_before",
13648                             "");   13648                             "");
13649       }   13649       }
13650       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13650       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13651       if (tmp___1) {   13651       if (tmp___1) {
13652     13652  
13653       } else {   13653       } else {
13654         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13654         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13655                             (Char const   *)"m_syswrap/syswrap-generic.c", 2885,   13655                             (Char const   *)"m_syswrap/syswrap-generic.c", 2885,
13656                             (Char const   *)"vgSysWrap_generic_sys_close_before",   13656                             (Char const   *)"vgSysWrap_generic_sys_close_before",
13657                             "");   13657                             "");
13658       }   13658       }
13659       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13659       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13660                                             (Char *)"close(fd)",   13660                                             (Char *)"close(fd)",
13661                                             (PtrdiffT )here,   13661                                             (PtrdiffT )here,
13662                                             (SizeT )sizeof(unsigned int ));   13662                                             (SizeT )sizeof(unsigned int ));
13663       break;   13663       break;
13664     }   13664     }
13665   } else {   13665   } else {
13666     13666  
13667   }   13667   }
13668   tmp___4 = vgModuleLocal_fd_allowed((Int )arrghs->arg1,   13668   tmp___4 = vgModuleLocal_fd_allowed((Int )arrghs->arg1,
13669                                      (Char const   *)"close", tid, (Bool )0);   13669                                      (Char const   *)"close", tid, (Bool )0);
13670   if (tmp___4) {   13670   if (tmp___4) {
13671     if (arrghs->arg1 == 2UL) {   13671     if (arrghs->arg1 == 2UL) {
13672       tmp___5 = vgPlain_debugLog_getLevel();   13672       tmp___5 = vgPlain_debugLog_getLevel();
13673       if (tmp___5 > 0) {   13673       if (tmp___5 > 0) {
13674         _L: /* CIL Label */   13674         _L: /* CIL Label */
13675         while (1) {   13675         while (1) {
13676           wzz = (Word )9;   13676           wzz = (Word )9;
13677           if (wzz >= 0L) {   13677           if (wzz >= 0L) {
13678             if (wzz < 10000L) {   13678             if (wzz < 10000L) {
13679               tmp___2 = 1;   13679               tmp___2 = 1;
13680             } else {   13680             } else {
13681               tmp___2 = 0;   13681               tmp___2 = 0;
13682             }   13682             }
13683           } else {   13683           } else {
13684             tmp___2 = 0;   13684             tmp___2 = 0;
13685           }   13685           }
13686           tmp___3 = __builtin_expect((long )tmp___2, 1L);   13686           tmp___3 = __builtin_expect((long )tmp___2, 1L);
13687           if (tmp___3) {   13687           if (tmp___3) {
13688     13688  
13689           } else {   13689           } else {
13690             vgPlain_assert_fail((Bool )1,   13690             vgPlain_assert_fail((Bool )1,
13691                                 (Char const   *)"wzz >= 0 && wzz < 10000",   13691                                 (Char const   *)"wzz >= 0 && wzz < 10000",
13692                                 (Char const   *)"m_syswrap/syswrap-generic.c",   13692                                 (Char const   *)"m_syswrap/syswrap-generic.c",
13693                                 2892,   13693                                 2892,
13694                                 (Char const   *)"vgSysWrap_generic_sys_close_before",   13694                                 (Char const   *)"vgSysWrap_generic_sys_close_before",
13695                                 "");   13695                                 "");
13696           }   13696           }
13697           status->what = (enum __anonenum_what_133 )1;   13697           status->what = (enum __anonenum_what_133 )1;
13698           status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   13698           status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
13699           break;   13699           break;
13700         }   13700         }
13701       } else {   13701       } else {
13702     13702  
13703       }   13703       }
13704     } else {   13704     } else {
13705     13705  
13706     }   13706     }
13707   } else {   13707   } else {
13708     goto _L;   13708     goto _L;
13709   }   13709   }
13710   return;   13710   return;
13711 }   13711 }
13712 }   13712 }
13713 void vgSysWrap_generic_sys_close_after(ThreadId tid , SyscallArgs *arrghs ,   13713 void vgSysWrap_generic_sys_close_after(ThreadId tid , SyscallArgs *arrghs ,
13714                                        SyscallStatus *status )   13714                                        SyscallStatus *status )
13715 {   13715 {
13716     13716  
13717     13717  
13718   {   13718   {
13719   if (vgPlain_clo_track_fds) {   13719   if (vgPlain_clo_track_fds) {
13720     record_fd_close((Int )arrghs->arg1);   13720     record_fd_close((Int )arrghs->arg1);
13721   } else {   13721   } else {
13722     13722  
13723   }   13723   }
13724   return;   13724   return;
13725 }   13725 }
13726 }   13726 }
13727 void vgSysWrap_generic_sys_dup_before(ThreadId tid , SyscallArgLayout *layout ,   13727 void vgSysWrap_generic_sys_dup_before(ThreadId tid , SyscallArgLayout *layout ,
13728                                       SyscallArgs *arrghs ,   13728                                       SyscallArgs *arrghs ,
13729                                       SyscallStatus *status , UWord *flags )   13729                                       SyscallStatus *status , UWord *flags )
13730 {   13730 {
13731   Int here ;   13731   Int here ;
13732   long tmp ;   13732   long tmp ;
13733   long tmp___0 ;   13733   long tmp___0 ;
13734     13734  
13735   {   13735   {
13736   if (vgPlain_clo_trace_syscalls) {   13736   if (vgPlain_clo_trace_syscalls) {
13737     vgPlain_printf("sys_dup ( %ld )", arrghs->arg1);   13737     vgPlain_printf("sys_dup ( %ld )", arrghs->arg1);
13738   } else {   13738   } else {
13739     13739  
13740   }   13740   }
13741   if (vgPlain_tdict.track_pre_reg_read) {   13741   if (vgPlain_tdict.track_pre_reg_read) {
13742     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13742     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13743                                           (Char *)"(syscallno)",   13743                                           (Char *)"(syscallno)",
13744                                           (PtrdiffT )layout->o_sysno,   13744                                           (PtrdiffT )layout->o_sysno,
13745                                           (SizeT )sizeof(UWord ));   13745                                           (SizeT )sizeof(UWord ));
13746     while (1) {   13746     while (1) {
13747       here = layout->o_arg1;   13747       here = layout->o_arg1;
13748       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   13748       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
13749                              1L);   13749                              1L);
13750       if (tmp) {   13750       if (tmp) {
13751     13751  
13752       } else {   13752       } else {
13753         vgPlain_assert_fail((Bool )1,   13753         vgPlain_assert_fail((Bool )1,
13754                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   13754                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
13755                             (Char const   *)"m_syswrap/syswrap-generic.c", 2903,   13755                             (Char const   *)"m_syswrap/syswrap-generic.c", 2903,
13756                             (Char const   *)"vgSysWrap_generic_sys_dup_before",   13756                             (Char const   *)"vgSysWrap_generic_sys_dup_before",
13757                             "");   13757                             "");
13758       }   13758       }
13759       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13759       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13760       if (tmp___0) {   13760       if (tmp___0) {
13761     13761  
13762       } else {   13762       } else {
13763         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13763         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13764                             (Char const   *)"m_syswrap/syswrap-generic.c", 2903,   13764                             (Char const   *)"m_syswrap/syswrap-generic.c", 2903,
13765                             (Char const   *)"vgSysWrap_generic_sys_dup_before",   13765                             (Char const   *)"vgSysWrap_generic_sys_dup_before",
13766                             "");   13766                             "");
13767       }   13767       }
13768       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13768       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13769                                             (Char *)"dup(oldfd)",   13769                                             (Char *)"dup(oldfd)",
13770                                             (PtrdiffT )here,   13770                                             (PtrdiffT )here,
13771                                             (SizeT )sizeof(unsigned int ));   13771                                             (SizeT )sizeof(unsigned int ));
13772       break;   13772       break;
13773     }   13773     }
13774   } else {   13774   } else {
13775     13775  
13776   }   13776   }
13777   return;   13777   return;
13778 }   13778 }
13779 }   13779 }
13780 void vgSysWrap_generic_sys_dup_after(ThreadId tid , SyscallArgs *arrghs ,   13780 void vgSysWrap_generic_sys_dup_after(ThreadId tid , SyscallArgs *arrghs ,
13781                                      SyscallStatus *status )   13781                                      SyscallStatus *status )
13782 {   13782 {
13783   Bool tmp ;   13783   Bool tmp ;
13784   int tmp___0 ;   13784   int tmp___0 ;
13785   long tmp___1 ;   13785   long tmp___1 ;
13786   UWord tmp___2 ;   13786   UWord tmp___2 ;
13787   Word wzz ;   13787   Word wzz ;
13788   int tmp___3 ;   13788   int tmp___3 ;
13789   long tmp___4 ;   13789   long tmp___4 ;
13790   UWord tmp___5 ;   13790   UWord tmp___5 ;
13791   UWord tmp___6 ;   13791   UWord tmp___6 ;
13792   Bool tmp___7 ;   13792   Bool tmp___7 ;
13793     13793  
13794   {   13794   {
13795   if ((unsigned int )status->what == 1U) {   13795   if ((unsigned int )status->what == 1U) {
13796     tmp = sr_isError(status->sres);   13796     tmp = sr_isError(status->sres);
13797     if (tmp) {   13797     if (tmp) {
13798       tmp___0 = 0;   13798       tmp___0 = 0;
13799     } else {   13799     } else {
13800       tmp___0 = 1;   13800       tmp___0 = 1;
13801     }   13801     }
13802   } else {   13802   } else {
13803     tmp___0 = 0;   13803     tmp___0 = 0;
13804   }   13804   }
13805   tmp___1 = __builtin_expect((long )tmp___0, 1L);   13805   tmp___1 = __builtin_expect((long )tmp___0, 1L);
13806   if (tmp___1) {   13806   if (tmp___1) {
13807     13807  
13808   } else {   13808   } else {
13809     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   13809     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
13810                         (Char const   *)"m_syswrap/syswrap-generic.c", 2908,   13810                         (Char const   *)"m_syswrap/syswrap-generic.c", 2908,
13811                         (Char const   *)"vgSysWrap_generic_sys_dup_after", "");   13811                         (Char const   *)"vgSysWrap_generic_sys_dup_after", "");
13812   }   13812   }
13813   tmp___6 = getRES(status);   13813   tmp___6 = getRES(status);
13814   tmp___7 = vgModuleLocal_fd_allowed((Int )tmp___6, (Char const   *)"dup", tid,   13814   tmp___7 = vgModuleLocal_fd_allowed((Int )tmp___6, (Char const   *)"dup", tid,
13815                                      (Bool )1);   13815                                      (Bool )1);
13816   if (tmp___7) {   13816   if (tmp___7) {
13817     if (vgPlain_clo_track_fds) {   13817     if (vgPlain_clo_track_fds) {
13818       tmp___5 = getRES(status);   13818       tmp___5 = getRES(status);
13819       vgModuleLocal_record_fd_open_named(tid, (Int )tmp___5);   13819       vgModuleLocal_record_fd_open_named(tid, (Int )tmp___5);
13820     } else {   13820     } else {
13821     13821  
13822     }   13822     }
13823   } else {   13823   } else {
13824     tmp___2 = getRES(status);   13824     tmp___2 = getRES(status);
13825     vgPlain_close((Int )tmp___2);   13825     vgPlain_close((Int )tmp___2);
13826     while (1) {   13826     while (1) {
13827       wzz = (Word )24;   13827       wzz = (Word )24;
13828       if (wzz >= 0L) {   13828       if (wzz >= 0L) {
13829         if (wzz < 10000L) {   13829         if (wzz < 10000L) {
13830           tmp___3 = 1;   13830           tmp___3 = 1;
13831         } else {   13831         } else {
13832           tmp___3 = 0;   13832           tmp___3 = 0;
13833         }   13833         }
13834       } else {   13834       } else {
13835         tmp___3 = 0;   13835         tmp___3 = 0;
13836       }   13836       }
13837       tmp___4 = __builtin_expect((long )tmp___3, 1L);   13837       tmp___4 = __builtin_expect((long )tmp___3, 1L);
13838       if (tmp___4) {   13838       if (tmp___4) {
13839     13839  
13840       } else {   13840       } else {
13841         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   13841         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
13842                             (Char const   *)"m_syswrap/syswrap-generic.c", 2911,   13842                             (Char const   *)"m_syswrap/syswrap-generic.c", 2911,
13843                             (Char const   *)"vgSysWrap_generic_sys_dup_after",   13843                             (Char const   *)"vgSysWrap_generic_sys_dup_after",
13844                             "");   13844                             "");
13845       }   13845       }
13846       status->what = (enum __anonenum_what_133 )1;   13846       status->what = (enum __anonenum_what_133 )1;
13847       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   13847       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
13848       break;   13848       break;
13849     }   13849     }
13850   }   13850   }
13851   return;   13851   return;
13852 }   13852 }
13853 }   13853 }
13854 void vgSysWrap_generic_sys_dup2_before(ThreadId tid , SyscallArgLayout *layout ,   13854 void vgSysWrap_generic_sys_dup2_before(ThreadId tid , SyscallArgLayout *layout ,
13855                                        SyscallArgs *arrghs ,   13855                                        SyscallArgs *arrghs ,
13856                                        SyscallStatus *status , UWord *flags )   13856                                        SyscallStatus *status , UWord *flags )
13857 {   13857 {
13858   Int here ;   13858   Int here ;
13859   long tmp ;   13859   long tmp ;
13860   long tmp___0 ;   13860   long tmp___0 ;
13861   Int here___0 ;   13861   Int here___0 ;
13862   long tmp___1 ;   13862   long tmp___1 ;
13863   long tmp___2 ;   13863   long tmp___2 ;
13864   Word wzz ;   13864   Word wzz ;
13865   int tmp___3 ;   13865   int tmp___3 ;
13866   long tmp___4 ;   13866   long tmp___4 ;
13867   Bool tmp___5 ;   13867   Bool tmp___5 ;
13868     13868  
13869   {   13869   {
13870   if (vgPlain_clo_trace_syscalls) {   13870   if (vgPlain_clo_trace_syscalls) {
13871     vgPlain_printf("sys_dup2 ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   13871     vgPlain_printf("sys_dup2 ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
13872   } else {   13872   } else {
13873     13873  
13874   }   13874   }
13875   if (vgPlain_tdict.track_pre_reg_read) {   13875   if (vgPlain_tdict.track_pre_reg_read) {
13876     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13876     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13877                                           (Char *)"(syscallno)",   13877                                           (Char *)"(syscallno)",
13878                                           (PtrdiffT )layout->o_sysno,   13878                                           (PtrdiffT )layout->o_sysno,
13879                                           (SizeT )sizeof(UWord ));   13879                                           (SizeT )sizeof(UWord ));
13880     while (1) {   13880     while (1) {
13881       here = layout->o_arg1;   13881       here = layout->o_arg1;
13882       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   13882       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
13883                              1L);   13883                              1L);
13884       if (tmp) {   13884       if (tmp) {
13885     13885  
13886       } else {   13886       } else {
13887         vgPlain_assert_fail((Bool )1,   13887         vgPlain_assert_fail((Bool )1,
13888                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   13888                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
13889                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,   13889                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,
13890                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",   13890                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",
13891                             "");   13891                             "");
13892       }   13892       }
13893       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   13893       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
13894       if (tmp___0) {   13894       if (tmp___0) {
13895     13895  
13896       } else {   13896       } else {
13897         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13897         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13898                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,   13898                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,
13899                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",   13899                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",
13900                             "");   13900                             "");
13901       }   13901       }
13902       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13902       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13903                                             (Char *)"dup2(oldfd)",   13903                                             (Char *)"dup2(oldfd)",
13904                                             (PtrdiffT )here,   13904                                             (PtrdiffT )here,
13905                                             (SizeT )sizeof(unsigned int ));   13905                                             (SizeT )sizeof(unsigned int ));
13906       break;   13906       break;
13907     }   13907     }
13908     while (1) {   13908     while (1) {
13909       here___0 = layout->o_arg2;   13909       here___0 = layout->o_arg2;
13910       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   13910       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
13911                                  1L);   13911                                  1L);
13912       if (tmp___1) {   13912       if (tmp___1) {
13913     13913  
13914       } else {   13914       } else {
13915         vgPlain_assert_fail((Bool )1,   13915         vgPlain_assert_fail((Bool )1,
13916                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   13916                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
13917                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,   13917                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,
13918                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",   13918                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",
13919                             "");   13919                             "");
13920       }   13920       }
13921       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   13921       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
13922       if (tmp___2) {   13922       if (tmp___2) {
13923     13923  
13924       } else {   13924       } else {
13925         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   13925         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
13926                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,   13926                             (Char const   *)"m_syswrap/syswrap-generic.c", 2921,
13927                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",   13927                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",
13928                             "");   13928                             "");
13929       }   13929       }
13930       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   13930       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
13931                                             (Char *)"dup2(newfd)",   13931                                             (Char *)"dup2(newfd)",
13932                                             (PtrdiffT )here___0,   13932                                             (PtrdiffT )here___0,
13933                                             (SizeT )sizeof(unsigned int ));   13933                                             (SizeT )sizeof(unsigned int ));
13934       break;   13934       break;
13935     }   13935     }
13936   } else {   13936   } else {
13937     13937  
13938   }   13938   }
13939   tmp___5 = vgModuleLocal_fd_allowed((Int )arrghs->arg2, (Char const   *)"dup2",   13939   tmp___5 = vgModuleLocal_fd_allowed((Int )arrghs->arg2, (Char const   *)"dup2",
13940                                      tid, (Bool )1);   13940                                      tid, (Bool )1);
13941   if (tmp___5) {   13941   if (tmp___5) {
13942     13942  
13943   } else {   13943   } else {
13944     while (1) {   13944     while (1) {
13945       wzz = (Word )9;   13945       wzz = (Word )9;
13946       if (wzz >= 0L) {   13946       if (wzz >= 0L) {
13947         if (wzz < 10000L) {   13947         if (wzz < 10000L) {
13948           tmp___3 = 1;   13948           tmp___3 = 1;
13949         } else {   13949         } else {
13950           tmp___3 = 0;   13950           tmp___3 = 0;
13951         }   13951         }
13952       } else {   13952       } else {
13953         tmp___3 = 0;   13953         tmp___3 = 0;
13954       }   13954       }
13955       tmp___4 = __builtin_expect((long )tmp___3, 1L);   13955       tmp___4 = __builtin_expect((long )tmp___3, 1L);
13956       if (tmp___4) {   13956       if (tmp___4) {
13957     13957  
13958       } else {   13958       } else {
13959         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   13959         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
13960                             (Char const   *)"m_syswrap/syswrap-generic.c", 2923,   13960                             (Char const   *)"m_syswrap/syswrap-generic.c", 2923,
13961                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",   13961                             (Char const   *)"vgSysWrap_generic_sys_dup2_before",
13962                             "");   13962                             "");
13963       }   13963       }
13964       status->what = (enum __anonenum_what_133 )1;   13964       status->what = (enum __anonenum_what_133 )1;
13965       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   13965       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
13966       break;   13966       break;
13967     }   13967     }
13968   }   13968   }
13969   return;   13969   return;
13970 }   13970 }
13971 }   13971 }
13972 void vgSysWrap_generic_sys_dup2_after(ThreadId tid , SyscallArgs *arrghs ,   13972 void vgSysWrap_generic_sys_dup2_after(ThreadId tid , SyscallArgs *arrghs ,
13973                                       SyscallStatus *status )   13973                                       SyscallStatus *status )
13974 {   13974 {
13975   Bool tmp ;   13975   Bool tmp ;
13976   int tmp___0 ;   13976   int tmp___0 ;
13977   long tmp___1 ;   13977   long tmp___1 ;
13978   UWord tmp___2 ;   13978   UWord tmp___2 ;
13979     13979  
13980   {   13980   {
13981   if ((unsigned int )status->what == 1U) {   13981   if ((unsigned int )status->what == 1U) {
13982     tmp = sr_isError(status->sres);   13982     tmp = sr_isError(status->sres);
13983     if (tmp) {   13983     if (tmp) {
13984       tmp___0 = 0;   13984       tmp___0 = 0;
13985     } else {   13985     } else {
13986       tmp___0 = 1;   13986       tmp___0 = 1;
13987     }   13987     }
13988   } else {   13988   } else {
13989     tmp___0 = 0;   13989     tmp___0 = 0;
13990   }   13990   }
13991   tmp___1 = __builtin_expect((long )tmp___0, 1L);   13991   tmp___1 = __builtin_expect((long )tmp___0, 1L);
13992   if (tmp___1) {   13992   if (tmp___1) {
13993     13993  
13994   } else {   13994   } else {
13995     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   13995     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
13996                         (Char const   *)"m_syswrap/syswrap-generic.c", 2928,   13996                         (Char const   *)"m_syswrap/syswrap-generic.c", 2928,
13997                         (Char const   *)"vgSysWrap_generic_sys_dup2_after", "");   13997                         (Char const   *)"vgSysWrap_generic_sys_dup2_after", "");
13998   }   13998   }
13999   if (vgPlain_clo_track_fds) {   13999   if (vgPlain_clo_track_fds) {
14000     tmp___2 = getRES(status);   14000     tmp___2 = getRES(status);
14001     vgModuleLocal_record_fd_open_named(tid, (Int )tmp___2);   14001     vgModuleLocal_record_fd_open_named(tid, (Int )tmp___2);
14002   } else {   14002   } else {
14003     14003  
14004   }   14004   }
14005   return;   14005   return;
14006 }   14006 }
14007 }   14007 }
14008 void vgSysWrap_generic_sys_fchdir_before(ThreadId tid ,   14008 void vgSysWrap_generic_sys_fchdir_before(ThreadId tid ,
14009                                          SyscallArgLayout *layout ,   14009                                          SyscallArgLayout *layout ,
14010                                          SyscallArgs *arrghs ,   14010                                          SyscallArgs *arrghs ,
14011                                          SyscallStatus *status , UWord *flags )   14011                                          SyscallStatus *status , UWord *flags )
14012 {   14012 {
14013   Char *tmp ;   14013   Char *tmp ;
14014   Int here ;   14014   Int here ;
14015   long tmp___0 ;   14015   long tmp___0 ;
14016   long tmp___1 ;   14016   long tmp___1 ;
14017     14017  
14018   {   14018   {
14019   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   14019   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
14020                        (Char *)"fuse-compatible");   14020                        (Char *)"fuse-compatible");
14021   if (tmp) {   14021   if (tmp) {
14022     *flags |= (unsigned long )(1 << 1);   14022     *flags |= (unsigned long )(1 << 1);
14023   } else {   14023   } else {
14024     14024  
14025   }   14025   }
14026   if (vgPlain_clo_trace_syscalls) {   14026   if (vgPlain_clo_trace_syscalls) {
14027     vgPlain_printf("sys_fchdir ( %ld )", arrghs->arg1);   14027     vgPlain_printf("sys_fchdir ( %ld )", arrghs->arg1);
14028   } else {   14028   } else {
14029     14029  
14030   }   14030   }
14031   if (vgPlain_tdict.track_pre_reg_read) {   14031   if (vgPlain_tdict.track_pre_reg_read) {
14032     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14032     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14033                                           (Char *)"(syscallno)",   14033                                           (Char *)"(syscallno)",
14034                                           (PtrdiffT )layout->o_sysno,   14034                                           (PtrdiffT )layout->o_sysno,
14035                                           (SizeT )sizeof(UWord ));   14035                                           (SizeT )sizeof(UWord ));
14036     while (1) {   14036     while (1) {
14037       here = layout->o_arg1;   14037       here = layout->o_arg1;
14038       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   14038       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
14039                                  1L);   14039                                  1L);
14040       if (tmp___0) {   14040       if (tmp___0) {
14041     14041  
14042       } else {   14042       } else {
14043         vgPlain_assert_fail((Bool )1,   14043         vgPlain_assert_fail((Bool )1,
14044                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   14044                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
14045                             (Char const   *)"m_syswrap/syswrap-generic.c", 2937,   14045                             (Char const   *)"m_syswrap/syswrap-generic.c", 2937,
14046                             (Char const   *)"vgSysWrap_generic_sys_fchdir_before",   14046                             (Char const   *)"vgSysWrap_generic_sys_fchdir_before",
14047                             "");   14047                             "");
14048       }   14048       }
14049       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14049       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14050       if (tmp___1) {   14050       if (tmp___1) {
14051     14051  
14052       } else {   14052       } else {
14053         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14053         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14054                             (Char const   *)"m_syswrap/syswrap-generic.c", 2937,   14054                             (Char const   *)"m_syswrap/syswrap-generic.c", 2937,
14055                             (Char const   *)"vgSysWrap_generic_sys_fchdir_before",   14055                             (Char const   *)"vgSysWrap_generic_sys_fchdir_before",
14056                             "");   14056                             "");
14057       }   14057       }
14058       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14058       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14059                                             (Char *)"fchdir(fd)",   14059                                             (Char *)"fchdir(fd)",
14060                                             (PtrdiffT )here,   14060                                             (PtrdiffT )here,
14061                                             (SizeT )sizeof(unsigned int ));   14061                                             (SizeT )sizeof(unsigned int ));
14062       break;   14062       break;
14063     }   14063     }
14064   } else {   14064   } else {
14065     14065  
14066   }   14066   }
14067   return;   14067   return;
14068 }   14068 }
14069 }   14069 }
14070 void vgSysWrap_generic_sys_fchown_before(ThreadId tid ,   14070 void vgSysWrap_generic_sys_fchown_before(ThreadId tid ,
14071                                          SyscallArgLayout *layout ,   14071                                          SyscallArgLayout *layout ,
14072                                          SyscallArgs *arrghs ,   14072                                          SyscallArgs *arrghs ,
14073                                          SyscallStatus *status , UWord *flags )   14073                                          SyscallStatus *status , UWord *flags )
14074 {   14074 {
14075   Char *tmp ;   14075   Char *tmp ;
14076   Int here ;   14076   Int here ;
14077   long tmp___0 ;   14077   long tmp___0 ;
14078   long tmp___1 ;   14078   long tmp___1 ;
14079   Int here___0 ;   14079   Int here___0 ;
14080   long tmp___2 ;   14080   long tmp___2 ;
14081   long tmp___3 ;   14081   long tmp___3 ;
14082   Int here___1 ;   14082   Int here___1 ;
14083   long tmp___4 ;   14083   long tmp___4 ;
14084   long tmp___5 ;   14084   long tmp___5 ;
14085     14085  
14086   {   14086   {
14087   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   14087   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
14088                        (Char *)"fuse-compatible");   14088                        (Char *)"fuse-compatible");
14089   if (tmp) {   14089   if (tmp) {
14090     *flags |= (unsigned long )(1 << 1);   14090     *flags |= (unsigned long )(1 << 1);
14091   } else {   14091   } else {
14092     14092  
14093   }   14093   }
14094   if (vgPlain_clo_trace_syscalls) {   14094   if (vgPlain_clo_trace_syscalls) {
14095     vgPlain_printf("sys_fchown ( %ld, %ld, %ld )", arrghs->arg1, arrghs->arg2,   14095     vgPlain_printf("sys_fchown ( %ld, %ld, %ld )", arrghs->arg1, arrghs->arg2,
14096                    arrghs->arg3);   14096                    arrghs->arg3);
14097   } else {   14097   } else {
14098     14098  
14099   }   14099   }
14100   if (vgPlain_tdict.track_pre_reg_read) {   14100   if (vgPlain_tdict.track_pre_reg_read) {
14101     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14101     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14102                                           (Char *)"(syscallno)",   14102                                           (Char *)"(syscallno)",
14103                                           (PtrdiffT )layout->o_sysno,   14103                                           (PtrdiffT )layout->o_sysno,
14104                                           (SizeT )sizeof(UWord ));   14104                                           (SizeT )sizeof(UWord ));
14105     while (1) {   14105     while (1) {
14106       here = layout->o_arg1;   14106       here = layout->o_arg1;
14107       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   14107       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
14108                                  1L);   14108                                  1L);
14109       if (tmp___0) {   14109       if (tmp___0) {
14110     14110  
14111       } else {   14111       } else {
14112         vgPlain_assert_fail((Bool )1,   14112         vgPlain_assert_fail((Bool )1,
14113                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   14113                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
14114                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,   14114                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,
14115                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",   14115                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",
14116                             "");   14116                             "");
14117       }   14117       }
14118       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14118       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14119       if (tmp___1) {   14119       if (tmp___1) {
14120     14120  
14121       } else {   14121       } else {
14122         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14122         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14123                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,   14123                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,
14124                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",   14124                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",
14125                             "");   14125                             "");
14126       }   14126       }
14127       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14127       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14128                                             (Char *)"fchown(fd)",   14128                                             (Char *)"fchown(fd)",
14129                                             (PtrdiffT )here,   14129                                             (PtrdiffT )here,
14130                                             (SizeT )sizeof(unsigned int ));   14130                                             (SizeT )sizeof(unsigned int ));
14131       break;   14131       break;
14132     }   14132     }
14133     while (1) {   14133     while (1) {
14134       here___0 = layout->o_arg2;   14134       here___0 = layout->o_arg2;
14135       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),   14135       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),
14136                                  1L);   14136                                  1L);
14137       if (tmp___2) {   14137       if (tmp___2) {
14138     14138  
14139       } else {   14139       } else {
14140         vgPlain_assert_fail((Bool )1,   14140         vgPlain_assert_fail((Bool )1,
14141                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",   14141                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",
14142                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,   14142                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,
14143                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",   14143                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",
14144                             "");   14144                             "");
14145       }   14145       }
14146       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   14146       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
14147       if (tmp___3) {   14147       if (tmp___3) {
14148     14148  
14149       } else {   14149       } else {
14150         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14150         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14151                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,   14151                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,
14152                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",   14152                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",
14153                             "");   14153                             "");
14154       }   14154       }
14155       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14155       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14156                                             (Char *)"fchown(owner)",   14156                                             (Char *)"fchown(owner)",
14157                                             (PtrdiffT )here___0,   14157                                             (PtrdiffT )here___0,
14158                                             (SizeT )sizeof(vki_uid_t ));   14158                                             (SizeT )sizeof(vki_uid_t ));
14159       break;   14159       break;
14160     }   14160     }
14161     while (1) {   14161     while (1) {
14162       here___1 = layout->o_arg3;   14162       here___1 = layout->o_arg3;
14163       tmp___4 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),   14163       tmp___4 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),
14164                                  1L);   14164                                  1L);
14165       if (tmp___4) {   14165       if (tmp___4) {
14166     14166  
14167       } else {   14167       } else {
14168         vgPlain_assert_fail((Bool )1,   14168         vgPlain_assert_fail((Bool )1,
14169                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",   14169                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",
14170                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,   14170                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,
14171                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",   14171                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",
14172                             "");   14172                             "");
14173       }   14173       }
14174       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   14174       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
14175       if (tmp___5) {   14175       if (tmp___5) {
14176     14176  
14177       } else {   14177       } else {
14178         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14178         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14179                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,   14179                             (Char const   *)"m_syswrap/syswrap-generic.c", 2945,
14180                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",   14180                             (Char const   *)"vgSysWrap_generic_sys_fchown_before",
14181                             "");   14181                             "");
14182       }   14182       }
14183       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14183       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14184                                             (Char *)"fchown(group)",   14184                                             (Char *)"fchown(group)",
14185                                             (PtrdiffT )here___1,   14185                                             (PtrdiffT )here___1,
14186                                             (SizeT )sizeof(vki_gid_t ));   14186                                             (SizeT )sizeof(vki_gid_t ));
14187       break;   14187       break;
14188     }   14188     }
14189   } else {   14189   } else {
14190     14190  
14191   }   14191   }
14192   return;   14192   return;
14193 }   14193 }
14194 }   14194 }
14195 void vgSysWrap_generic_sys_fchmod_before(ThreadId tid ,   14195 void vgSysWrap_generic_sys_fchmod_before(ThreadId tid ,
14196                                          SyscallArgLayout *layout ,   14196                                          SyscallArgLayout *layout ,
14197                                          SyscallArgs *arrghs ,   14197                                          SyscallArgs *arrghs ,
14198                                          SyscallStatus *status , UWord *flags )   14198                                          SyscallStatus *status , UWord *flags )
14199 {   14199 {
14200   Char *tmp ;   14200   Char *tmp ;
14201   Int here ;   14201   Int here ;
14202   long tmp___0 ;   14202   long tmp___0 ;
14203   long tmp___1 ;   14203   long tmp___1 ;
14204   Int here___0 ;   14204   Int here___0 ;
14205   long tmp___2 ;   14205   long tmp___2 ;
14206   long tmp___3 ;   14206   long tmp___3 ;
14207     14207  
14208   {   14208   {
14209   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   14209   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
14210                        (Char *)"fuse-compatible");   14210                        (Char *)"fuse-compatible");
14211   if (tmp) {   14211   if (tmp) {
14212     *flags |= (unsigned long )(1 << 1);   14212     *flags |= (unsigned long )(1 << 1);
14213   } else {   14213   } else {
14214     14214  
14215   }   14215   }
14216   if (vgPlain_clo_trace_syscalls) {   14216   if (vgPlain_clo_trace_syscalls) {
14217     vgPlain_printf("sys_fchmod ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   14217     vgPlain_printf("sys_fchmod ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
14218   } else {   14218   } else {
14219     14219  
14220   }   14220   }
14221   if (vgPlain_tdict.track_pre_reg_read) {   14221   if (vgPlain_tdict.track_pre_reg_read) {
14222     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14222     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14223                                           (Char *)"(syscallno)",   14223                                           (Char *)"(syscallno)",
14224                                           (PtrdiffT )layout->o_sysno,   14224                                           (PtrdiffT )layout->o_sysno,
14225                                           (SizeT )sizeof(UWord ));   14225                                           (SizeT )sizeof(UWord ));
14226     while (1) {   14226     while (1) {
14227       here = layout->o_arg1;   14227       here = layout->o_arg1;
14228       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   14228       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
14229                                  1L);   14229                                  1L);
14230       if (tmp___0) {   14230       if (tmp___0) {
14231     14231  
14232       } else {   14232       } else {
14233         vgPlain_assert_fail((Bool )1,   14233         vgPlain_assert_fail((Bool )1,
14234                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   14234                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
14235                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,   14235                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,
14236                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",   14236                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",
14237                             "");   14237                             "");
14238       }   14238       }
14239       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14239       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14240       if (tmp___1) {   14240       if (tmp___1) {
14241     14241  
14242       } else {   14242       } else {
14243         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14243         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14244                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,   14244                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,
14245                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",   14245                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",
14246                             "");   14246                             "");
14247       }   14247       }
14248       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14248       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14249                                             (Char *)"fchmod(fildes)",   14249                                             (Char *)"fchmod(fildes)",
14250                                             (PtrdiffT )here,   14250                                             (PtrdiffT )here,
14251                                             (SizeT )sizeof(unsigned int ));   14251                                             (SizeT )sizeof(unsigned int ));
14252       break;   14252       break;
14253     }   14253     }
14254     while (1) {   14254     while (1) {
14255       here___0 = layout->o_arg2;   14255       here___0 = layout->o_arg2;
14256       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_mode_t ) <= sizeof(UWord )))),   14256       tmp___2 = __builtin_expect((long )(! (! (sizeof(vki_mode_t ) <= sizeof(UWord )))),
14257                                  1L);   14257                                  1L);
14258       if (tmp___2) {   14258       if (tmp___2) {
14259     14259  
14260       } else {   14260       } else {
14261         vgPlain_assert_fail((Bool )1,   14261         vgPlain_assert_fail((Bool )1,
14262                             (Char const   *)"sizeof(vki_mode_t) <= sizeof(UWord)",   14262                             (Char const   *)"sizeof(vki_mode_t) <= sizeof(UWord)",
14263                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,   14263                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,
14264                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",   14264                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",
14265                             "");   14265                             "");
14266       }   14266       }
14267       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   14267       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
14268       if (tmp___3) {   14268       if (tmp___3) {
14269     14269  
14270       } else {   14270       } else {
14271         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14271         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14272                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,   14272                             (Char const   *)"m_syswrap/syswrap-generic.c", 2952,
14273                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",   14273                             (Char const   *)"vgSysWrap_generic_sys_fchmod_before",
14274                             "");   14274                             "");
14275       }   14275       }
14276       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14276       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14277                                             (Char *)"fchmod(mode)",   14277                                             (Char *)"fchmod(mode)",
14278                                             (PtrdiffT )here___0,   14278                                             (PtrdiffT )here___0,
14279                                             (SizeT )sizeof(vki_mode_t ));   14279                                             (SizeT )sizeof(vki_mode_t ));
14280       break;   14280       break;
14281     }   14281     }
14282   } else {   14282   } else {
14283     14283  
14284   }   14284   }
14285   return;   14285   return;
14286 }   14286 }
14287 }   14287 }
14288 void vgSysWrap_generic_sys_newfstat_before(ThreadId tid ,   14288 void vgSysWrap_generic_sys_newfstat_before(ThreadId tid ,
14289                                            SyscallArgLayout *layout ,   14289                                            SyscallArgLayout *layout ,
14290                                            SyscallArgs *arrghs ,   14290                                            SyscallArgs *arrghs ,
14291                                            SyscallStatus *status , UWord *flags )   14291                                            SyscallStatus *status , UWord *flags )
14292 {   14292 {
14293   Char *tmp ;   14293   Char *tmp ;
14294   Int here ;   14294   Int here ;
14295   long tmp___0 ;   14295   long tmp___0 ;
14296   long tmp___1 ;   14296   long tmp___1 ;
14297   Int here___0 ;   14297   Int here___0 ;
14298   long tmp___2 ;   14298   long tmp___2 ;
14299   long tmp___3 ;   14299   long tmp___3 ;
14300     14300  
14301   {   14301   {
14302   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   14302   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
14303                        (Char *)"fuse-compatible");   14303                        (Char *)"fuse-compatible");
14304   if (tmp) {   14304   if (tmp) {
14305     *flags |= (unsigned long )(1 << 1);   14305     *flags |= (unsigned long )(1 << 1);
14306   } else {   14306   } else {
14307     14307  
14308   }   14308   }
14309   if (vgPlain_clo_trace_syscalls) {   14309   if (vgPlain_clo_trace_syscalls) {
14310     vgPlain_printf("sys_newfstat ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   14310     vgPlain_printf("sys_newfstat ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
14311   } else {   14311   } else {
14312     14312  
14313   }   14313   }
14314   if (vgPlain_tdict.track_pre_reg_read) {   14314   if (vgPlain_tdict.track_pre_reg_read) {
14315     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14315     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14316                                           (Char *)"(syscallno)",   14316                                           (Char *)"(syscallno)",
14317                                           (PtrdiffT )layout->o_sysno,   14317                                           (PtrdiffT )layout->o_sysno,
14318                                           (SizeT )sizeof(UWord ));   14318                                           (SizeT )sizeof(UWord ));
14319     while (1) {   14319     while (1) {
14320       here = layout->o_arg1;   14320       here = layout->o_arg1;
14321       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   14321       tmp___0 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
14322                                  1L);   14322                                  1L);
14323       if (tmp___0) {   14323       if (tmp___0) {
14324     14324  
14325       } else {   14325       } else {
14326         vgPlain_assert_fail((Bool )1,   14326         vgPlain_assert_fail((Bool )1,
14327                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   14327                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
14328                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,   14328                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,
14329                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",   14329                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",
14330                             "");   14330                             "");
14331       }   14331       }
14332       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14332       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14333       if (tmp___1) {   14333       if (tmp___1) {
14334     14334  
14335       } else {   14335       } else {
14336         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14336         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14337                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,   14337                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,
14338                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",   14338                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",
14339                             "");   14339                             "");
14340       }   14340       }
14341       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14341       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14342                                             (Char *)"fstat(fd)",   14342                                             (Char *)"fstat(fd)",
14343                                             (PtrdiffT )here,   14343                                             (PtrdiffT )here,
14344                                             (SizeT )sizeof(unsigned int ));   14344                                             (SizeT )sizeof(unsigned int ));
14345       break;   14345       break;
14346     }   14346     }
14347     while (1) {   14347     while (1) {
14348       here___0 = layout->o_arg2;   14348       here___0 = layout->o_arg2;
14349       tmp___2 = __builtin_expect((long )(! (! (sizeof(struct stat *) <= sizeof(UWord )))),   14349       tmp___2 = __builtin_expect((long )(! (! (sizeof(struct stat *) <= sizeof(UWord )))),
14350                                  1L);   14350                                  1L);
14351       if (tmp___2) {   14351       if (tmp___2) {
14352     14352  
14353       } else {   14353       } else {
14354         vgPlain_assert_fail((Bool )1,   14354         vgPlain_assert_fail((Bool )1,
14355                             (Char const   *)"sizeof(struct stat *) <= sizeof(UWord)",   14355                             (Char const   *)"sizeof(struct stat *) <= sizeof(UWord)",
14356                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,   14356                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,
14357                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",   14357                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",
14358                             "");   14358                             "");
14359       }   14359       }
14360       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   14360       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
14361       if (tmp___3) {   14361       if (tmp___3) {
14362     14362  
14363       } else {   14363       } else {
14364         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14364         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14365                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,   14365                             (Char const   *)"m_syswrap/syswrap-generic.c", 2959,
14366                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",   14366                             (Char const   *)"vgSysWrap_generic_sys_newfstat_before",
14367                             "");   14367                             "");
14368       }   14368       }
14369       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14369       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14370                                             (Char *)"fstat(buf)",   14370                                             (Char *)"fstat(buf)",
14371                                             (PtrdiffT )here___0,   14371                                             (PtrdiffT )here___0,
14372                                             (SizeT )sizeof(struct stat *));   14372                                             (SizeT )sizeof(struct stat *));
14373       break;   14373       break;
14374     }   14374     }
14375   } else {   14375   } else {
14376     14376  
14377   }   14377   }
14378   while (1) {   14378   while (1) {
14379     if (vgPlain_tdict.track_pre_mem_write) {   14379     if (vgPlain_tdict.track_pre_mem_write) {
14380       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   14380       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
14381                                              (Char *)"fstat(buf)", arrghs->arg2,   14381                                              (Char *)"fstat(buf)", arrghs->arg2,
14382                                              (SizeT )sizeof(struct vki_stat ));   14382                                              (SizeT )sizeof(struct vki_stat ));
14383     } else {   14383     } else {
14384     14384  
14385     }   14385     }
14386     break;   14386     break;
14387   }   14387   }
14388   return;   14388   return;
14389 }   14389 }
14390 }   14390 }
14391 void vgSysWrap_generic_sys_newfstat_after(ThreadId tid , SyscallArgs *arrghs ,   14391 void vgSysWrap_generic_sys_newfstat_after(ThreadId tid , SyscallArgs *arrghs ,
14392                                           SyscallStatus *status )   14392                                           SyscallStatus *status )
14393 {   14393 {
14394     14394  
14395     14395  
14396   {   14396   {
14397   while (1) {   14397   while (1) {
14398     if (vgPlain_tdict.track_post_mem_write) {   14398     if (vgPlain_tdict.track_post_mem_write) {
14399       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   14399       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
14400                                               (SizeT )sizeof(struct vki_stat ));   14400                                               (SizeT )sizeof(struct vki_stat ));
14401     } else {   14401     } else {
14402     14402  
14403     }   14403     }
14404     break;   14404     break;
14405   }   14405   }
14406   return;   14406   return;
14407 }   14407 }
14408 }   14408 }
14409 static vki_sigset_t fork_saved_mask  ;   14409 static vki_sigset_t fork_saved_mask  ;
14410 void vgSysWrap_generic_sys_fork_before(ThreadId tid , SyscallArgLayout *layout ,   14410 void vgSysWrap_generic_sys_fork_before(ThreadId tid , SyscallArgLayout *layout ,
14411                                        SyscallArgs *arrghs ,   14411                                        SyscallArgs *arrghs ,
14412                                        SyscallStatus *status , UWord *flags )   14412                                        SyscallStatus *status , UWord *flags )
14413 {   14413 {
14414   Bool is_child ;   14414   Bool is_child ;
14415   Int child_pid ;   14415   Int child_pid ;
14416   vki_sigset_t mask ;   14416   vki_sigset_t mask ;
14417   Bool tmp ;   14417   Bool tmp ;
14418   UWord tmp___0 ;   14418   UWord tmp___0 ;
14419   UWord tmp___1 ;   14419   UWord tmp___1 ;
14420   UWord tmp___2 ;   14420   UWord tmp___2 ;
14421   Int tmp___3 ;   14421   Int tmp___3 ;
14422     14422  
14423   {   14423   {
14424   if (vgPlain_clo_trace_syscalls) {   14424   if (vgPlain_clo_trace_syscalls) {
14425     vgPlain_printf("sys_fork ( )");   14425     vgPlain_printf("sys_fork ( )");
14426   } else {   14426   } else {
14427     14427  
14428   }   14428   }
14429   if (vgPlain_tdict.track_pre_reg_read) {   14429   if (vgPlain_tdict.track_pre_reg_read) {
14430     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14430     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14431                                           (Char *)"(syscallno)",   14431                                           (Char *)"(syscallno)",
14432                                           (PtrdiffT )layout->o_sysno,   14432                                           (PtrdiffT )layout->o_sysno,
14433                                           (SizeT )sizeof(UWord ));   14433                                           (SizeT )sizeof(UWord ));
14434   } else {   14434   } else {
14435     14435  
14436   }   14436   }
14437   vgPlain_sigfillset(& mask);   14437   vgPlain_sigfillset(& mask);
14438   vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& mask), & fork_saved_mask);   14438   vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& mask), & fork_saved_mask);
14439   while (1) {   14439   while (1) {
14440     status->what = (enum __anonenum_what_133 )1;   14440     status->what = (enum __anonenum_what_133 )1;
14441     status->sres = vgPlain_do_syscall((UWord )2, (UWord )0, (UWord )0,   14441     status->sres = vgPlain_do_syscall((UWord )2, (UWord )0, (UWord )0,
14442                                       (UWord )0, (UWord )0, (UWord )0,   14442                                       (UWord )0, (UWord )0, (UWord )0,
14443                                       (UWord )0, (UWord )0, (UWord )0);   14443                                       (UWord )0, (UWord )0, (UWord )0);
14444     break;   14444     break;
14445   }   14445   }
14446   if ((unsigned int )status->what == 1U) {   14446   if ((unsigned int )status->what == 1U) {
14447     tmp = sr_isError(status->sres);   14447     tmp = sr_isError(status->sres);
14448     if (tmp) {   14448     if (tmp) {
14449       return;   14449       return;
14450     } else {   14450     } else {
14451     14451  
14452     }   14452     }
14453   } else {   14453   } else {
14454     return;   14454     return;
14455   }   14455   }
14456   tmp___1 = getRES(status);   14456   tmp___1 = getRES(status);
14457   if (tmp___1 == 0UL) {   14457   if (tmp___1 == 0UL) {
14458     is_child = (Bool )1;   14458     is_child = (Bool )1;
14459   } else {   14459   } else {
14460     is_child = (Bool )0;   14460     is_child = (Bool )0;
14461   }   14461   }
14462   if (is_child) {   14462   if (is_child) {
14463     child_pid = -1;   14463     child_pid = -1;
14464   } else {   14464   } else {
14465     tmp___2 = getRES(status);   14465     tmp___2 = getRES(status);
14466     child_pid = (Int )tmp___2;   14466     child_pid = (Int )tmp___2;
14467   }   14467   }
14468   vgPlain_do_atfork_pre(tid);   14468   vgPlain_do_atfork_pre(tid);
14469   if (is_child) {   14469   if (is_child) {
14470     vgPlain_do_atfork_child(tid);   14470     vgPlain_do_atfork_child(tid);
14471     vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& fork_saved_mask),   14471     vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& fork_saved_mask),
14472                         (vki_sigset_t *)((void *)0));   14472                         (vki_sigset_t *)((void *)0));
14473     if (vgPlain_clo_child_silent_after_fork) {   14473     if (vgPlain_clo_child_silent_after_fork) {
14474       if (! vgPlain_log_output_sink.is_socket) {   14474       if (! vgPlain_log_output_sink.is_socket) {
14475         vgPlain_log_output_sink.fd = -1;   14475         vgPlain_log_output_sink.fd = -1;
14476       } else {   14476       } else {
14477     14477  
14478       }   14478       }
14479       if (! vgPlain_xml_output_sink.is_socket) {   14479       if (! vgPlain_xml_output_sink.is_socket) {
14480         vgPlain_xml_output_sink.fd = -1;   14480         vgPlain_xml_output_sink.fd = -1;
14481       } else {   14481       } else {
14482     14482  
14483       }   14483       }
14484     } else {   14484     } else {
14485     14485  
14486     }   14486     }
14487   } else {   14487   } else {
14488     vgPlain_do_atfork_parent(tid);   14488     vgPlain_do_atfork_parent(tid);
14489     if (vgPlain_clo_trace_syscalls) {   14489     if (vgPlain_clo_trace_syscalls) {
14490       tmp___3 = vgPlain_getpid();   14490       tmp___3 = vgPlain_getpid();
14491       vgPlain_printf("   fork: process %d created child %d\n", tmp___3,   14491       vgPlain_printf("   fork: process %d created child %d\n", tmp___3,
14492                      child_pid);   14492                      child_pid);
14493     } else {   14493     } else {
14494     14494  
14495     }   14495     }
14496     vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& fork_saved_mask),   14496     vgPlain_sigprocmask(2, (vki_sigset_t const   *)(& fork_saved_mask),
14497                         (vki_sigset_t *)((void *)0));   14497                         (vki_sigset_t *)((void *)0));
14498   }   14498   }
14499   return;   14499   return;
14500 }   14500 }
14501 }   14501 }
14502 void vgSysWrap_generic_sys_ftruncate_before(ThreadId tid ,   14502 void vgSysWrap_generic_sys_ftruncate_before(ThreadId tid ,
14503                                             SyscallArgLayout *layout ,   14503                                             SyscallArgLayout *layout ,
14504                                             SyscallArgs *arrghs ,   14504                                             SyscallArgs *arrghs ,
14505                                             SyscallStatus *status ,   14505                                             SyscallStatus *status ,
14506                                             UWord *flags )   14506                                             UWord *flags )
14507 {   14507 {
14508   Int here ;   14508   Int here ;
14509   long tmp ;   14509   long tmp ;
14510   long tmp___0 ;   14510   long tmp___0 ;
14511   Int here___0 ;   14511   Int here___0 ;
14512   long tmp___1 ;   14512   long tmp___1 ;
14513   long tmp___2 ;   14513   long tmp___2 ;
14514     14514  
14515   {   14515   {
14516   *flags |= (unsigned long )(1 << 1);   14516   *flags |= (unsigned long )(1 << 1);
14517   if (vgPlain_clo_trace_syscalls) {   14517   if (vgPlain_clo_trace_syscalls) {
14518     vgPlain_printf("sys_ftruncate ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   14518     vgPlain_printf("sys_ftruncate ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
14519   } else {   14519   } else {
14520     14520  
14521   }   14521   }
14522   if (vgPlain_tdict.track_pre_reg_read) {   14522   if (vgPlain_tdict.track_pre_reg_read) {
14523     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14523     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14524                                           (Char *)"(syscallno)",   14524                                           (Char *)"(syscallno)",
14525                                           (PtrdiffT )layout->o_sysno,   14525                                           (PtrdiffT )layout->o_sysno,
14526                                           (SizeT )sizeof(UWord ));   14526                                           (SizeT )sizeof(UWord ));
14527     while (1) {   14527     while (1) {
14528       here = layout->o_arg1;   14528       here = layout->o_arg1;
14529       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   14529       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
14530                              1L);   14530                              1L);
14531       if (tmp) {   14531       if (tmp) {
14532     14532  
14533       } else {   14533       } else {
14534         vgPlain_assert_fail((Bool )1,   14534         vgPlain_assert_fail((Bool )1,
14535                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   14535                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
14536                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,   14536                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,
14537                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",   14537                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",
14538                             "");   14538                             "");
14539       }   14539       }
14540       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14540       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14541       if (tmp___0) {   14541       if (tmp___0) {
14542     14542  
14543       } else {   14543       } else {
14544         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14544         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14545                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,   14545                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,
14546                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",   14546                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",
14547                             "");   14547                             "");
14548       }   14548       }
14549       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14549       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14550                                             (Char *)"ftruncate(fd)",   14550                                             (Char *)"ftruncate(fd)",
14551                                             (PtrdiffT )here,   14551                                             (PtrdiffT )here,
14552                                             (SizeT )sizeof(unsigned int ));   14552                                             (SizeT )sizeof(unsigned int ));
14553       break;   14553       break;
14554     }   14554     }
14555     while (1) {   14555     while (1) {
14556       here___0 = layout->o_arg2;   14556       here___0 = layout->o_arg2;
14557       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   14557       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
14558                                  1L);   14558                                  1L);
14559       if (tmp___1) {   14559       if (tmp___1) {
14560     14560  
14561       } else {   14561       } else {
14562         vgPlain_assert_fail((Bool )1,   14562         vgPlain_assert_fail((Bool )1,
14563                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   14563                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
14564                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,   14564                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,
14565                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",   14565                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",
14566                             "");   14566                             "");
14567       }   14567       }
14568       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   14568       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
14569       if (tmp___2) {   14569       if (tmp___2) {
14570     14570  
14571       } else {   14571       } else {
14572         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14572         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14573                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,   14573                             (Char const   *)"m_syswrap/syswrap-generic.c", 3035,
14574                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",   14574                             (Char const   *)"vgSysWrap_generic_sys_ftruncate_before",
14575                             "");   14575                             "");
14576       }   14576       }
14577       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14577       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14578                                             (Char *)"ftruncate(length)",   14578                                             (Char *)"ftruncate(length)",
14579                                             (PtrdiffT )here___0,   14579                                             (PtrdiffT )here___0,
14580                                             (SizeT )sizeof(unsigned long ));   14580                                             (SizeT )sizeof(unsigned long ));
14581       break;   14581       break;
14582     }   14582     }
14583   } else {   14583   } else {
14584     14584  
14585   }   14585   }
14586   return;   14586   return;
14587 }   14587 }
14588 }   14588 }
14589 void vgSysWrap_generic_sys_truncate_before(ThreadId tid ,   14589 void vgSysWrap_generic_sys_truncate_before(ThreadId tid ,
14590                                            SyscallArgLayout *layout ,   14590                                            SyscallArgLayout *layout ,
14591                                            SyscallArgs *arrghs ,   14591                                            SyscallArgs *arrghs ,
14592                                            SyscallStatus *status , UWord *flags )   14592                                            SyscallStatus *status , UWord *flags )
14593 {   14593 {
14594   Int here ;   14594   Int here ;
14595   long tmp ;   14595   long tmp ;
14596   long tmp___0 ;   14596   long tmp___0 ;
14597   Int here___0 ;   14597   Int here___0 ;
14598   long tmp___1 ;   14598   long tmp___1 ;
14599   long tmp___2 ;   14599   long tmp___2 ;
14600     14600  
14601   {   14601   {
14602   *flags |= (unsigned long )(1 << 1);   14602   *flags |= (unsigned long )(1 << 1);
14603   if (vgPlain_clo_trace_syscalls) {   14603   if (vgPlain_clo_trace_syscalls) {
14604     vgPlain_printf("sys_truncate ( %#lx(%s), %ld )", arrghs->arg1,   14604     vgPlain_printf("sys_truncate ( %#lx(%s), %ld )", arrghs->arg1,
14605                    (char *)arrghs->arg1, arrghs->arg2);   14605                    (char *)arrghs->arg1, arrghs->arg2);
14606   } else {   14606   } else {
14607     14607  
14608   }   14608   }
14609   if (vgPlain_tdict.track_pre_reg_read) {   14609   if (vgPlain_tdict.track_pre_reg_read) {
14610     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14610     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14611                                           (Char *)"(syscallno)",   14611                                           (Char *)"(syscallno)",
14612                                           (PtrdiffT )layout->o_sysno,   14612                                           (PtrdiffT )layout->o_sysno,
14613                                           (SizeT )sizeof(UWord ));   14613                                           (SizeT )sizeof(UWord ));
14614     while (1) {   14614     while (1) {
14615       here = layout->o_arg1;   14615       here = layout->o_arg1;
14616       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   14616       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
14617                              1L);   14617                              1L);
14618       if (tmp) {   14618       if (tmp) {
14619     14619  
14620       } else {   14620       } else {
14621         vgPlain_assert_fail((Bool )1,   14621         vgPlain_assert_fail((Bool )1,
14622                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   14622                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
14623                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,   14623                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,
14624                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",   14624                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",
14625                             "");   14625                             "");
14626       }   14626       }
14627       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14627       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14628       if (tmp___0) {   14628       if (tmp___0) {
14629     14629  
14630       } else {   14630       } else {
14631         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14631         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14632                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,   14632                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,
14633                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",   14633                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",
14634                             "");   14634                             "");
14635       }   14635       }
14636       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14636       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14637                                             (Char *)"truncate(path)",   14637                                             (Char *)"truncate(path)",
14638                                             (PtrdiffT )here,   14638                                             (PtrdiffT )here,
14639                                             (SizeT )sizeof(char const   *));   14639                                             (SizeT )sizeof(char const   *));
14640       break;   14640       break;
14641     }   14641     }
14642     while (1) {   14642     while (1) {
14643       here___0 = layout->o_arg2;   14643       here___0 = layout->o_arg2;
14644       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   14644       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
14645                                  1L);   14645                                  1L);
14646       if (tmp___1) {   14646       if (tmp___1) {
14647     14647  
14648       } else {   14648       } else {
14649         vgPlain_assert_fail((Bool )1,   14649         vgPlain_assert_fail((Bool )1,
14650                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   14650                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
14651                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,   14651                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,
14652                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",   14652                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",
14653                             "");   14653                             "");
14654       }   14654       }
14655       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   14655       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
14656       if (tmp___2) {   14656       if (tmp___2) {
14657     14657  
14658       } else {   14658       } else {
14659         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14659         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14660                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,   14660                             (Char const   *)"m_syswrap/syswrap-generic.c", 3043,
14661                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",   14661                             (Char const   *)"vgSysWrap_generic_sys_truncate_before",
14662                             "");   14662                             "");
14663       }   14663       }
14664       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14664       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14665                                             (Char *)"truncate(length)",   14665                                             (Char *)"truncate(length)",
14666                                             (PtrdiffT )here___0,   14666                                             (PtrdiffT )here___0,
14667                                             (SizeT )sizeof(unsigned long ));   14667                                             (SizeT )sizeof(unsigned long ));
14668       break;   14668       break;
14669     }   14669     }
14670   } else {   14670   } else {
14671     14671  
14672   }   14672   }
14673   while (1) {   14673   while (1) {
14674     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   14674     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
14675       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   14675       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
14676                                                    (Char *)"truncate(path)",   14676                                                    (Char *)"truncate(path)",
14677                                                    arrghs->arg1);   14677                                                    arrghs->arg1);
14678     } else {   14678     } else {
14679     14679  
14680     }   14680     }
14681     break;   14681     break;
14682   }   14682   }
14683   return;   14683   return;
14684 }   14684 }
14685 }   14685 }
14686 void vgSysWrap_generic_sys_ftruncate64_before(ThreadId tid ,   14686 void vgSysWrap_generic_sys_ftruncate64_before(ThreadId tid ,
14687                                               SyscallArgLayout *layout ,   14687                                               SyscallArgLayout *layout ,
14688                                               SyscallArgs *arrghs ,   14688                                               SyscallArgs *arrghs ,
14689                                               SyscallStatus *status ,   14689                                               SyscallStatus *status ,
14690                                               UWord *flags )   14690                                               UWord *flags )
14691 {   14691 {
14692   Int here ;   14692   Int here ;
14693   long tmp ;   14693   long tmp ;
14694   long tmp___0 ;   14694   long tmp___0 ;
14695   Int here___0 ;   14695   Int here___0 ;
14696   long tmp___1 ;   14696   long tmp___1 ;
14697   long tmp___2 ;   14697   long tmp___2 ;
14698   Int here___1 ;   14698   Int here___1 ;
14699   long tmp___3 ;   14699   long tmp___3 ;
14700   long tmp___4 ;   14700   long tmp___4 ;
14701     14701  
14702   {   14702   {
14703   *flags |= (unsigned long )(1 << 1);   14703   *flags |= (unsigned long )(1 << 1);
14704   if (vgPlain_clo_trace_syscalls) {   14704   if (vgPlain_clo_trace_syscalls) {
14705     vgPlain_printf("sys_ftruncate64 ( %ld, %lld )", arrghs->arg1,   14705     vgPlain_printf("sys_ftruncate64 ( %ld, %lld )", arrghs->arg1,
14706                    (ULong )arrghs->arg2 | ((ULong )arrghs->arg3 << 32));   14706                    (ULong )arrghs->arg2 | ((ULong )arrghs->arg3 << 32));
14707   } else {   14707   } else {
14708     14708  
14709   }   14709   }
14710   if (vgPlain_tdict.track_pre_reg_read) {   14710   if (vgPlain_tdict.track_pre_reg_read) {
14711     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14711     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14712                                           (Char *)"(syscallno)",   14712                                           (Char *)"(syscallno)",
14713                                           (PtrdiffT )layout->o_sysno,   14713                                           (PtrdiffT )layout->o_sysno,
14714                                           (SizeT )sizeof(UWord ));   14714                                           (SizeT )sizeof(UWord ));
14715     while (1) {   14715     while (1) {
14716       here = layout->o_arg1;   14716       here = layout->o_arg1;
14717       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   14717       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
14718                              1L);   14718                              1L);
14719       if (tmp) {   14719       if (tmp) {
14720     14720  
14721       } else {   14721       } else {
14722         vgPlain_assert_fail((Bool )1,   14722         vgPlain_assert_fail((Bool )1,
14723                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   14723                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
14724                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,   14724                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,
14725                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",   14725                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",
14726                             "");   14726                             "");
14727       }   14727       }
14728       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14728       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14729       if (tmp___0) {   14729       if (tmp___0) {
14730     14730  
14731       } else {   14731       } else {
14732         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14732         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14733                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,   14733                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,
14734                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",   14734                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",
14735                             "");   14735                             "");
14736       }   14736       }
14737       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14737       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14738                                             (Char *)"ftruncate64(fd)",   14738                                             (Char *)"ftruncate64(fd)",
14739                                             (PtrdiffT )here,   14739                                             (PtrdiffT )here,
14740                                             (SizeT )sizeof(unsigned int ));   14740                                             (SizeT )sizeof(unsigned int ));
14741       break;   14741       break;
14742     }   14742     }
14743     while (1) {   14743     while (1) {
14744       here___0 = layout->o_arg2;   14744       here___0 = layout->o_arg2;
14745       tmp___1 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),   14745       tmp___1 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),
14746                                  1L);   14746                                  1L);
14747       if (tmp___1) {   14747       if (tmp___1) {
14748     14748  
14749       } else {   14749       } else {
14750         vgPlain_assert_fail((Bool )1,   14750         vgPlain_assert_fail((Bool )1,
14751                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",   14751                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",
14752                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,   14752                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,
14753                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",   14753                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",
14754                             "");   14754                             "");
14755       }   14755       }
14756       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   14756       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
14757       if (tmp___2) {   14757       if (tmp___2) {
14758     14758  
14759       } else {   14759       } else {
14760         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14760         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14761                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,   14761                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,
14762                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",   14762                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",
14763                             "");   14763                             "");
14764       }   14764       }
14765       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14765       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14766                                             (Char *)"ftruncate64(length_low)",   14766                                             (Char *)"ftruncate64(length_low)",
14767                                             (PtrdiffT )here___0,   14767                                             (PtrdiffT )here___0,
14768                                             (SizeT )sizeof(UWord ));   14768                                             (SizeT )sizeof(UWord ));
14769       break;   14769       break;
14770     }   14770     }
14771     while (1) {   14771     while (1) {
14772       here___1 = layout->o_arg3;   14772       here___1 = layout->o_arg3;
14773       tmp___3 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),   14773       tmp___3 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),
14774                                  1L);   14774                                  1L);
14775       if (tmp___3) {   14775       if (tmp___3) {
14776     14776  
14777       } else {   14777       } else {
14778         vgPlain_assert_fail((Bool )1,   14778         vgPlain_assert_fail((Bool )1,
14779                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",   14779                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",
14780                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,   14780                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,
14781                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",   14781                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",
14782                             "");   14782                             "");
14783       }   14783       }
14784       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   14784       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
14785       if (tmp___4) {   14785       if (tmp___4) {
14786     14786  
14787       } else {   14787       } else {
14788         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14788         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14789                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,   14789                             (Char const   *)"m_syswrap/syswrap-generic.c", 3054,
14790                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",   14790                             (Char const   *)"vgSysWrap_generic_sys_ftruncate64_before",
14791                             "");   14791                             "");
14792       }   14792       }
14793       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14793       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14794                                             (Char *)"ftruncate64(length_high)",   14794                                             (Char *)"ftruncate64(length_high)",
14795                                             (PtrdiffT )here___1,   14795                                             (PtrdiffT )here___1,
14796                                             (SizeT )sizeof(UWord ));   14796                                             (SizeT )sizeof(UWord ));
14797       break;   14797       break;
14798     }   14798     }
14799   } else {   14799   } else {
14800     14800  
14801   }   14801   }
14802   return;   14802   return;
14803 }   14803 }
14804 }   14804 }
14805 void vgSysWrap_generic_sys_truncate64_before(ThreadId tid ,   14805 void vgSysWrap_generic_sys_truncate64_before(ThreadId tid ,
14806                                              SyscallArgLayout *layout ,   14806                                              SyscallArgLayout *layout ,
14807                                              SyscallArgs *arrghs ,   14807                                              SyscallArgs *arrghs ,
14808                                              SyscallStatus *status ,   14808                                              SyscallStatus *status ,
14809                                              UWord *flags )   14809                                              UWord *flags )
14810 {   14810 {
14811   Int here ;   14811   Int here ;
14812   long tmp ;   14812   long tmp ;
14813   long tmp___0 ;   14813   long tmp___0 ;
14814   Int here___0 ;   14814   Int here___0 ;
14815   long tmp___1 ;   14815   long tmp___1 ;
14816   long tmp___2 ;   14816   long tmp___2 ;
14817   Int here___1 ;   14817   Int here___1 ;
14818   long tmp___3 ;   14818   long tmp___3 ;
14819   long tmp___4 ;   14819   long tmp___4 ;
14820     14820  
14821   {   14821   {
14822   *flags |= (unsigned long )(1 << 1);   14822   *flags |= (unsigned long )(1 << 1);
14823   if (vgPlain_clo_trace_syscalls) {   14823   if (vgPlain_clo_trace_syscalls) {
14824     vgPlain_printf("sys_truncate64 ( %#lx, %lld )", arrghs->arg1,   14824     vgPlain_printf("sys_truncate64 ( %#lx, %lld )", arrghs->arg1,
14825                    (Long )((ULong )arrghs->arg2 | ((ULong )arrghs->arg3 << 32)));   14825                    (Long )((ULong )arrghs->arg2 | ((ULong )arrghs->arg3 << 32)));
14826   } else {   14826   } else {
14827     14827  
14828   }   14828   }
14829   if (vgPlain_tdict.track_pre_reg_read) {   14829   if (vgPlain_tdict.track_pre_reg_read) {
14830     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14830     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14831                                           (Char *)"(syscallno)",   14831                                           (Char *)"(syscallno)",
14832                                           (PtrdiffT )layout->o_sysno,   14832                                           (PtrdiffT )layout->o_sysno,
14833                                           (SizeT )sizeof(UWord ));   14833                                           (SizeT )sizeof(UWord ));
14834     while (1) {   14834     while (1) {
14835       here = layout->o_arg1;   14835       here = layout->o_arg1;
14836       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   14836       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
14837                              1L);   14837                              1L);
14838       if (tmp) {   14838       if (tmp) {
14839     14839  
14840       } else {   14840       } else {
14841         vgPlain_assert_fail((Bool )1,   14841         vgPlain_assert_fail((Bool )1,
14842                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   14842                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
14843                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,   14843                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,
14844                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",   14844                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",
14845                             "");   14845                             "");
14846       }   14846       }
14847       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14847       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14848       if (tmp___0) {   14848       if (tmp___0) {
14849     14849  
14850       } else {   14850       } else {
14851         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14851         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14852                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,   14852                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,
14853                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",   14853                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",
14854                             "");   14854                             "");
14855       }   14855       }
14856       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14856       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14857                                             (Char *)"truncate64(path)",   14857                                             (Char *)"truncate64(path)",
14858                                             (PtrdiffT )here,   14858                                             (PtrdiffT )here,
14859                                             (SizeT )sizeof(char const   *));   14859                                             (SizeT )sizeof(char const   *));
14860       break;   14860       break;
14861     }   14861     }
14862     while (1) {   14862     while (1) {
14863       here___0 = layout->o_arg2;   14863       here___0 = layout->o_arg2;
14864       tmp___1 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),   14864       tmp___1 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),
14865                                  1L);   14865                                  1L);
14866       if (tmp___1) {   14866       if (tmp___1) {
14867     14867  
14868       } else {   14868       } else {
14869         vgPlain_assert_fail((Bool )1,   14869         vgPlain_assert_fail((Bool )1,
14870                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",   14870                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",
14871                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,   14871                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,
14872                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",   14872                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",
14873                             "");   14873                             "");
14874       }   14874       }
14875       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   14875       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
14876       if (tmp___2) {   14876       if (tmp___2) {
14877     14877  
14878       } else {   14878       } else {
14879         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14879         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14880                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,   14880                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,
14881                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",   14881                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",
14882                             "");   14882                             "");
14883       }   14883       }
14884       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14884       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14885                                             (Char *)"truncate64(length_low)",   14885                                             (Char *)"truncate64(length_low)",
14886                                             (PtrdiffT )here___0,   14886                                             (PtrdiffT )here___0,
14887                                             (SizeT )sizeof(UWord ));   14887                                             (SizeT )sizeof(UWord ));
14888       break;   14888       break;
14889     }   14889     }
14890     while (1) {   14890     while (1) {
14891       here___1 = layout->o_arg3;   14891       here___1 = layout->o_arg3;
14892       tmp___3 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),   14892       tmp___3 = __builtin_expect((long )(! (! (sizeof(UWord ) <= sizeof(UWord )))),
14893                                  1L);   14893                                  1L);
14894       if (tmp___3) {   14894       if (tmp___3) {
14895     14895  
14896       } else {   14896       } else {
14897         vgPlain_assert_fail((Bool )1,   14897         vgPlain_assert_fail((Bool )1,
14898                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",   14898                             (Char const   *)"sizeof(UWord) <= sizeof(UWord)",
14899                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,   14899                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,
14900                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",   14900                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",
14901                             "");   14901                             "");
14902       }   14902       }
14903       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   14903       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
14904       if (tmp___4) {   14904       if (tmp___4) {
14905     14905  
14906       } else {   14906       } else {
14907         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14907         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14908                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,   14908                             (Char const   *)"m_syswrap/syswrap-generic.c", 3069,
14909                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",   14909                             (Char const   *)"vgSysWrap_generic_sys_truncate64_before",
14910                             "");   14910                             "");
14911       }   14911       }
14912       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14912       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14913                                             (Char *)"truncate64(length_high)",   14913                                             (Char *)"truncate64(length_high)",
14914                                             (PtrdiffT )here___1,   14914                                             (PtrdiffT )here___1,
14915                                             (SizeT )sizeof(UWord ));   14915                                             (SizeT )sizeof(UWord ));
14916       break;   14916       break;
14917     }   14917     }
14918   } else {   14918   } else {
14919     14919  
14920   }   14920   }
14921   while (1) {   14921   while (1) {
14922     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   14922     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
14923       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   14923       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
14924                                                    (Char *)"truncate64(path)",   14924                                                    (Char *)"truncate64(path)",
14925                                                    arrghs->arg1);   14925                                                    arrghs->arg1);
14926     } else {   14926     } else {
14927     14927  
14928     }   14928     }
14929     break;   14929     break;
14930   }   14930   }
14931   return;   14931   return;
14932 }   14932 }
14933 }   14933 }
14934 void vgSysWrap_generic_sys_getdents_before(ThreadId tid ,   14934 void vgSysWrap_generic_sys_getdents_before(ThreadId tid ,
14935                                            SyscallArgLayout *layout ,   14935                                            SyscallArgLayout *layout ,
14936                                            SyscallArgs *arrghs ,   14936                                            SyscallArgs *arrghs ,
14937                                            SyscallStatus *status , UWord *flags )   14937                                            SyscallStatus *status , UWord *flags )
14938 {   14938 {
14939   Int here ;   14939   Int here ;
14940   long tmp ;   14940   long tmp ;
14941   long tmp___0 ;   14941   long tmp___0 ;
14942   Int here___0 ;   14942   Int here___0 ;
14943   long tmp___1 ;   14943   long tmp___1 ;
14944   long tmp___2 ;   14944   long tmp___2 ;
14945   Int here___1 ;   14945   Int here___1 ;
14946   long tmp___3 ;   14946   long tmp___3 ;
14947   long tmp___4 ;   14947   long tmp___4 ;
14948     14948  
14949   {   14949   {
14950   *flags |= (unsigned long )(1 << 1);   14950   *flags |= (unsigned long )(1 << 1);
14951   if (vgPlain_clo_trace_syscalls) {   14951   if (vgPlain_clo_trace_syscalls) {
14952     vgPlain_printf("sys_getdents ( %ld, %#lx, %ld )", arrghs->arg1,   14952     vgPlain_printf("sys_getdents ( %ld, %#lx, %ld )", arrghs->arg1,
14953                    arrghs->arg2, arrghs->arg3);   14953                    arrghs->arg2, arrghs->arg3);
14954   } else {   14954   } else {
14955     14955  
14956   }   14956   }
14957   if (vgPlain_tdict.track_pre_reg_read) {   14957   if (vgPlain_tdict.track_pre_reg_read) {
14958     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14958     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14959                                           (Char *)"(syscallno)",   14959                                           (Char *)"(syscallno)",
14960                                           (PtrdiffT )layout->o_sysno,   14960                                           (PtrdiffT )layout->o_sysno,
14961                                           (SizeT )sizeof(UWord ));   14961                                           (SizeT )sizeof(UWord ));
14962     while (1) {   14962     while (1) {
14963       here = layout->o_arg1;   14963       here = layout->o_arg1;
14964       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   14964       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
14965                              1L);   14965                              1L);
14966       if (tmp) {   14966       if (tmp) {
14967     14967  
14968       } else {   14968       } else {
14969         vgPlain_assert_fail((Bool )1,   14969         vgPlain_assert_fail((Bool )1,
14970                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   14970                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
14971                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,   14971                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,
14972                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",   14972                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",
14973                             "");   14973                             "");
14974       }   14974       }
14975       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   14975       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
14976       if (tmp___0) {   14976       if (tmp___0) {
14977     14977  
14978       } else {   14978       } else {
14979         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   14979         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
14980                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,   14980                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,
14981                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",   14981                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",
14982                             "");   14982                             "");
14983       }   14983       }
14984       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   14984       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
14985                                             (Char *)"getdents(fd)",   14985                                             (Char *)"getdents(fd)",
14986                                             (PtrdiffT )here,   14986                                             (PtrdiffT )here,
14987                                             (SizeT )sizeof(unsigned int ));   14987                                             (SizeT )sizeof(unsigned int ));
14988       break;   14988       break;
14989     }   14989     }
14990     while (1) {   14990     while (1) {
14991       here___0 = layout->o_arg2;   14991       here___0 = layout->o_arg2;
14992       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct linux_dirent *) <= sizeof(UWord )))),   14992       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct linux_dirent *) <= sizeof(UWord )))),
14993                                  1L);   14993                                  1L);
14994       if (tmp___1) {   14994       if (tmp___1) {
14995     14995  
14996       } else {   14996       } else {
14997         vgPlain_assert_fail((Bool )1,   14997         vgPlain_assert_fail((Bool )1,
14998                             (Char const   *)"sizeof(struct linux_dirent *) <= sizeof(UWord)",   14998                             (Char const   *)"sizeof(struct linux_dirent *) <= sizeof(UWord)",
14999                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,   14999                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,
15000                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",   15000                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",
15001                             "");   15001                             "");
15002       }   15002       }
15003       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   15003       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
15004       if (tmp___2) {   15004       if (tmp___2) {
15005     15005  
15006       } else {   15006       } else {
15007         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15007         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15008                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,   15008                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,
15009                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",   15009                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",
15010                             "");   15010                             "");
15011       }   15011       }
15012       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15012       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15013                                             (Char *)"getdents(dirp)",   15013                                             (Char *)"getdents(dirp)",
15014                                             (PtrdiffT )here___0,   15014                                             (PtrdiffT )here___0,
15015                                             (SizeT )sizeof(struct linux_dirent *));   15015                                             (SizeT )sizeof(struct linux_dirent *));
15016       break;   15016       break;
15017     }   15017     }
15018     while (1) {   15018     while (1) {
15019       here___1 = layout->o_arg3;   15019       here___1 = layout->o_arg3;
15020       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   15020       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
15021                                  1L);   15021                                  1L);
15022       if (tmp___3) {   15022       if (tmp___3) {
15023     15023  
15024       } else {   15024       } else {
15025         vgPlain_assert_fail((Bool )1,   15025         vgPlain_assert_fail((Bool )1,
15026                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   15026                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
15027                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,   15027                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,
15028                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",   15028                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",
15029                             "");   15029                             "");
15030       }   15030       }
15031       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   15031       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
15032       if (tmp___4) {   15032       if (tmp___4) {
15033     15033  
15034       } else {   15034       } else {
15035         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15035         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15036                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,   15036                             (Char const   *)"m_syswrap/syswrap-generic.c", 3084,
15037                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",   15037                             (Char const   *)"vgSysWrap_generic_sys_getdents_before",
15038                             "");   15038                             "");
15039       }   15039       }
15040       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15040       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15041                                             (Char *)"getdents(count)",   15041                                             (Char *)"getdents(count)",
15042                                             (PtrdiffT )here___1,   15042                                             (PtrdiffT )here___1,
15043                                             (SizeT )sizeof(unsigned int ));   15043                                             (SizeT )sizeof(unsigned int ));
15044       break;   15044       break;
15045     }   15045     }
15046   } else {   15046   } else {
15047     15047  
15048   }   15048   }
15049   while (1) {   15049   while (1) {
15050     if (vgPlain_tdict.track_pre_mem_write) {   15050     if (vgPlain_tdict.track_pre_mem_write) {
15051       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   15051       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
15052                                              (Char *)"getdents(dirp)",   15052                                              (Char *)"getdents(dirp)",
15053                                              arrghs->arg2, arrghs->arg3);   15053                                              arrghs->arg2, arrghs->arg3);
15054     } else {   15054     } else {
15055     15055  
15056     }   15056     }
15057     break;   15057     break;
15058   }   15058   }
15059   return;   15059   return;
15060 }   15060 }
15061 }   15061 }
15062 void vgSysWrap_generic_sys_getdents_after(ThreadId tid , SyscallArgs *arrghs ,   15062 void vgSysWrap_generic_sys_getdents_after(ThreadId tid , SyscallArgs *arrghs ,
15063                                           SyscallStatus *status )   15063                                           SyscallStatus *status )
15064 {   15064 {
15065   Bool tmp ;   15065   Bool tmp ;
15066   int tmp___0 ;   15066   int tmp___0 ;
15067   long tmp___1 ;   15067   long tmp___1 ;
15068   UWord tmp___2 ;   15068   UWord tmp___2 ;
15069   UWord tmp___3 ;   15069   UWord tmp___3 ;
15070     15070  
15071   {   15071   {
15072   if ((unsigned int )status->what == 1U) {   15072   if ((unsigned int )status->what == 1U) {
15073     tmp = sr_isError(status->sres);   15073     tmp = sr_isError(status->sres);
15074     if (tmp) {   15074     if (tmp) {
15075       tmp___0 = 0;   15075       tmp___0 = 0;
15076     } else {   15076     } else {
15077       tmp___0 = 1;   15077       tmp___0 = 1;
15078     }   15078     }
15079   } else {   15079   } else {
15080     tmp___0 = 0;   15080     tmp___0 = 0;
15081   }   15081   }
15082   tmp___1 = __builtin_expect((long )tmp___0, 1L);   15082   tmp___1 = __builtin_expect((long )tmp___0, 1L);
15083   if (tmp___1) {   15083   if (tmp___1) {
15084     15084  
15085   } else {   15085   } else {
15086     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   15086     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
15087                         (Char const   *)"m_syswrap/syswrap-generic.c", 3090,   15087                         (Char const   *)"m_syswrap/syswrap-generic.c", 3090,
15088                         (Char const   *)"vgSysWrap_generic_sys_getdents_after",   15088                         (Char const   *)"vgSysWrap_generic_sys_getdents_after",
15089                         "");   15089                         "");
15090   }   15090   }
15091   tmp___3 = getRES(status);   15091   tmp___3 = getRES(status);
15092   if (tmp___3 > 0UL) {   15092   if (tmp___3 > 0UL) {
15093     while (1) {   15093     while (1) {
15094       if (vgPlain_tdict.track_post_mem_write) {   15094       if (vgPlain_tdict.track_post_mem_write) {
15095         tmp___2 = getRES(status);   15095         tmp___2 = getRES(status);
15096         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   15096         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
15097                                                 tmp___2);   15097                                                 tmp___2);
15098       } else {   15098       } else {
15099     15099  
15100       }   15100       }
15101       break;   15101       break;
15102     }   15102     }
15103   } else {   15103   } else {
15104     15104  
15105   }   15105   }
15106   return;   15106   return;
15107 }   15107 }
15108 }   15108 }
15109 void vgSysWrap_generic_sys_getdents64_before(ThreadId tid ,   15109 void vgSysWrap_generic_sys_getdents64_before(ThreadId tid ,
15110                                              SyscallArgLayout *layout ,   15110                                              SyscallArgLayout *layout ,
15111                                              SyscallArgs *arrghs ,   15111                                              SyscallArgs *arrghs ,
15112                                              SyscallStatus *status ,   15112                                              SyscallStatus *status ,
15113                                              UWord *flags )   15113                                              UWord *flags )
15114 {   15114 {
15115   Int here ;   15115   Int here ;
15116   long tmp ;   15116   long tmp ;
15117   long tmp___0 ;   15117   long tmp___0 ;
15118   Int here___0 ;   15118   Int here___0 ;
15119   long tmp___1 ;   15119   long tmp___1 ;
15120   long tmp___2 ;   15120   long tmp___2 ;
15121   Int here___1 ;   15121   Int here___1 ;
15122   long tmp___3 ;   15122   long tmp___3 ;
15123   long tmp___4 ;   15123   long tmp___4 ;
15124     15124  
15125   {   15125   {
15126   *flags |= (unsigned long )(1 << 1);   15126   *flags |= (unsigned long )(1 << 1);
15127   if (vgPlain_clo_trace_syscalls) {   15127   if (vgPlain_clo_trace_syscalls) {
15128     vgPlain_printf("sys_getdents64 ( %ld, %#lx, %ld )", arrghs->arg1,   15128     vgPlain_printf("sys_getdents64 ( %ld, %#lx, %ld )", arrghs->arg1,
15129                    arrghs->arg2, arrghs->arg3);   15129                    arrghs->arg2, arrghs->arg3);
15130   } else {   15130   } else {
15131     15131  
15132   }   15132   }
15133   if (vgPlain_tdict.track_pre_reg_read) {   15133   if (vgPlain_tdict.track_pre_reg_read) {
15134     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15134     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15135                                           (Char *)"(syscallno)",   15135                                           (Char *)"(syscallno)",
15136                                           (PtrdiffT )layout->o_sysno,   15136                                           (PtrdiffT )layout->o_sysno,
15137                                           (SizeT )sizeof(UWord ));   15137                                           (SizeT )sizeof(UWord ));
15138     while (1) {   15138     while (1) {
15139       here = layout->o_arg1;   15139       here = layout->o_arg1;
15140       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   15140       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
15141                              1L);   15141                              1L);
15142       if (tmp) {   15142       if (tmp) {
15143     15143  
15144       } else {   15144       } else {
15145         vgPlain_assert_fail((Bool )1,   15145         vgPlain_assert_fail((Bool )1,
15146                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   15146                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
15147                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,   15147                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,
15148                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",   15148                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",
15149                             "");   15149                             "");
15150       }   15150       }
15151       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   15151       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
15152       if (tmp___0) {   15152       if (tmp___0) {
15153     15153  
15154       } else {   15154       } else {
15155         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15155         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15156                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,   15156                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,
15157                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",   15157                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",
15158                             "");   15158                             "");
15159       }   15159       }
15160       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15160       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15161                                             (Char *)"getdents64(fd)",   15161                                             (Char *)"getdents64(fd)",
15162                                             (PtrdiffT )here,   15162                                             (PtrdiffT )here,
15163                                             (SizeT )sizeof(unsigned int ));   15163                                             (SizeT )sizeof(unsigned int ));
15164       break;   15164       break;
15165     }   15165     }
15166     while (1) {   15166     while (1) {
15167       here___0 = layout->o_arg2;   15167       here___0 = layout->o_arg2;
15168       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct linux_dirent64 *) <= sizeof(UWord )))),   15168       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct linux_dirent64 *) <= sizeof(UWord )))),
15169                                  1L);   15169                                  1L);
15170       if (tmp___1) {   15170       if (tmp___1) {
15171     15171  
15172       } else {   15172       } else {
15173         vgPlain_assert_fail((Bool )1,   15173         vgPlain_assert_fail((Bool )1,
15174                             (Char const   *)"sizeof(struct linux_dirent64 *) <= sizeof(UWord)",   15174                             (Char const   *)"sizeof(struct linux_dirent64 *) <= sizeof(UWord)",
15175                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,   15175                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,
15176                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",   15176                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",
15177                             "");   15177                             "");
15178       }   15178       }
15179       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   15179       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
15180       if (tmp___2) {   15180       if (tmp___2) {
15181     15181  
15182       } else {   15182       } else {
15183         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15183         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15184                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,   15184                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,
15185                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",   15185                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",
15186                             "");   15186                             "");
15187       }   15187       }
15188       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15188       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15189                                             (Char *)"getdents64(dirp)",   15189                                             (Char *)"getdents64(dirp)",
15190                                             (PtrdiffT )here___0,   15190                                             (PtrdiffT )here___0,
15191                                             (SizeT )sizeof(struct linux_dirent64 *));   15191                                             (SizeT )sizeof(struct linux_dirent64 *));
15192       break;   15192       break;
15193     }   15193     }
15194     while (1) {   15194     while (1) {
15195       here___1 = layout->o_arg3;   15195       here___1 = layout->o_arg3;
15196       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   15196       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
15197                                  1L);   15197                                  1L);
15198       if (tmp___3) {   15198       if (tmp___3) {
15199     15199  
15200       } else {   15200       } else {
15201         vgPlain_assert_fail((Bool )1,   15201         vgPlain_assert_fail((Bool )1,
15202                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   15202                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
15203                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,   15203                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,
15204                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",   15204                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",
15205                             "");   15205                             "");
15206       }   15206       }
15207       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   15207       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
15208       if (tmp___4) {   15208       if (tmp___4) {
15209     15209  
15210       } else {   15210       } else {
15211         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15211         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15212                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,   15212                             (Char const   *)"m_syswrap/syswrap-generic.c", 3101,
15213                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",   15213                             (Char const   *)"vgSysWrap_generic_sys_getdents64_before",
15214                             "");   15214                             "");
15215       }   15215       }
15216       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15216       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15217                                             (Char *)"getdents64(count)",   15217                                             (Char *)"getdents64(count)",
15218                                             (PtrdiffT )here___1,   15218                                             (PtrdiffT )here___1,
15219                                             (SizeT )sizeof(unsigned int ));   15219                                             (SizeT )sizeof(unsigned int ));
15220       break;   15220       break;
15221     }   15221     }
15222   } else {   15222   } else {
15223     15223  
15224   }   15224   }
15225   while (1) {   15225   while (1) {
15226     if (vgPlain_tdict.track_pre_mem_write) {   15226     if (vgPlain_tdict.track_pre_mem_write) {
15227       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   15227       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
15228                                              (Char *)"getdents64(dirp)",   15228                                              (Char *)"getdents64(dirp)",
15229                                              arrghs->arg2, arrghs->arg3);   15229                                              arrghs->arg2, arrghs->arg3);
15230     } else {   15230     } else {
15231     15231  
15232     }   15232     }
15233     break;   15233     break;
15234   }   15234   }
15235   return;   15235   return;
15236 }   15236 }
15237 }   15237 }
15238 void vgSysWrap_generic_sys_getdents64_after(ThreadId tid , SyscallArgs *arrghs ,   15238 void vgSysWrap_generic_sys_getdents64_after(ThreadId tid , SyscallArgs *arrghs ,
15239                                             SyscallStatus *status )   15239                                             SyscallStatus *status )
15240 {   15240 {
15241   Bool tmp ;   15241   Bool tmp ;
15242   int tmp___0 ;   15242   int tmp___0 ;
15243   long tmp___1 ;   15243   long tmp___1 ;
15244   UWord tmp___2 ;   15244   UWord tmp___2 ;
15245   UWord tmp___3 ;   15245   UWord tmp___3 ;
15246     15246  
15247   {   15247   {
15248   if ((unsigned int )status->what == 1U) {   15248   if ((unsigned int )status->what == 1U) {
15249     tmp = sr_isError(status->sres);   15249     tmp = sr_isError(status->sres);
15250     if (tmp) {   15250     if (tmp) {
15251       tmp___0 = 0;   15251       tmp___0 = 0;
15252     } else {   15252     } else {
15253       tmp___0 = 1;   15253       tmp___0 = 1;
15254     }   15254     }
15255   } else {   15255   } else {
15256     tmp___0 = 0;   15256     tmp___0 = 0;
15257   }   15257   }
15258   tmp___1 = __builtin_expect((long )tmp___0, 1L);   15258   tmp___1 = __builtin_expect((long )tmp___0, 1L);
15259   if (tmp___1) {   15259   if (tmp___1) {
15260     15260  
15261   } else {   15261   } else {
15262     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   15262     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
15263                         (Char const   *)"m_syswrap/syswrap-generic.c", 3107,   15263                         (Char const   *)"m_syswrap/syswrap-generic.c", 3107,
15264                         (Char const   *)"vgSysWrap_generic_sys_getdents64_after",   15264                         (Char const   *)"vgSysWrap_generic_sys_getdents64_after",
15265                         "");   15265                         "");
15266   }   15266   }
15267   tmp___3 = getRES(status);   15267   tmp___3 = getRES(status);
15268   if (tmp___3 > 0UL) {   15268   if (tmp___3 > 0UL) {
15269     while (1) {   15269     while (1) {
15270       if (vgPlain_tdict.track_post_mem_write) {   15270       if (vgPlain_tdict.track_post_mem_write) {
15271         tmp___2 = getRES(status);   15271         tmp___2 = getRES(status);
15272         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   15272         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
15273                                                 tmp___2);   15273                                                 tmp___2);
15274       } else {   15274       } else {
15275     15275  
15276       }   15276       }
15277       break;   15277       break;
15278     }   15278     }
15279   } else {   15279   } else {
15280     15280  
15281   }   15281   }
15282   return;   15282   return;
15283 }   15283 }
15284 }   15284 }
15285 void vgSysWrap_generic_sys_getgroups_before(ThreadId tid ,   15285 void vgSysWrap_generic_sys_getgroups_before(ThreadId tid ,
15286                                             SyscallArgLayout *layout ,   15286                                             SyscallArgLayout *layout ,
15287                                             SyscallArgs *arrghs ,   15287                                             SyscallArgs *arrghs ,
15288                                             SyscallStatus *status ,   15288                                             SyscallStatus *status ,
15289                                             UWord *flags )   15289                                             UWord *flags )
15290 {   15290 {
15291   Int here ;   15291   Int here ;
15292   long tmp ;   15292   long tmp ;
15293   long tmp___0 ;   15293   long tmp___0 ;
15294   Int here___0 ;   15294   Int here___0 ;
15295   long tmp___1 ;   15295   long tmp___1 ;
15296   long tmp___2 ;   15296   long tmp___2 ;
15297     15297  
15298   {   15298   {
15299   if (vgPlain_clo_trace_syscalls) {   15299   if (vgPlain_clo_trace_syscalls) {
15300     vgPlain_printf("sys_getgroups ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   15300     vgPlain_printf("sys_getgroups ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
15301   } else {   15301   } else {
15302     15302  
15303   }   15303   }
15304   if (vgPlain_tdict.track_pre_reg_read) {   15304   if (vgPlain_tdict.track_pre_reg_read) {
15305     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15305     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15306                                           (Char *)"(syscallno)",   15306                                           (Char *)"(syscallno)",
15307                                           (PtrdiffT )layout->o_sysno,   15307                                           (PtrdiffT )layout->o_sysno,
15308                                           (SizeT )sizeof(UWord ));   15308                                           (SizeT )sizeof(UWord ));
15309     while (1) {   15309     while (1) {
15310       here = layout->o_arg1;   15310       here = layout->o_arg1;
15311       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   15311       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
15312       if (tmp) {   15312       if (tmp) {
15313     15313  
15314       } else {   15314       } else {
15315         vgPlain_assert_fail((Bool )1,   15315         vgPlain_assert_fail((Bool )1,
15316                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   15316                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
15317                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,   15317                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,
15318                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",   15318                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",
15319                             "");   15319                             "");
15320       }   15320       }
15321       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   15321       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
15322       if (tmp___0) {   15322       if (tmp___0) {
15323     15323  
15324       } else {   15324       } else {
15325         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15325         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15326                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,   15326                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,
15327                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",   15327                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",
15328                             "");   15328                             "");
15329       }   15329       }
15330       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15330       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15331                                             (Char *)"getgroups(size)",   15331                                             (Char *)"getgroups(size)",
15332                                             (PtrdiffT )here,   15332                                             (PtrdiffT )here,
15333                                             (SizeT )sizeof(int ));   15333                                             (SizeT )sizeof(int ));
15334       break;   15334       break;
15335     }   15335     }
15336     while (1) {   15336     while (1) {
15337       here___0 = layout->o_arg2;   15337       here___0 = layout->o_arg2;
15338       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_gid_t *) <= sizeof(UWord )))),   15338       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_gid_t *) <= sizeof(UWord )))),
15339                                  1L);   15339                                  1L);
15340       if (tmp___1) {   15340       if (tmp___1) {
15341     15341  
15342       } else {   15342       } else {
15343         vgPlain_assert_fail((Bool )1,   15343         vgPlain_assert_fail((Bool )1,
15344                             (Char const   *)"sizeof(vki_gid_t *) <= sizeof(UWord)",   15344                             (Char const   *)"sizeof(vki_gid_t *) <= sizeof(UWord)",
15345                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,   15345                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,
15346                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",   15346                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",
15347                             "");   15347                             "");
15348       }   15348       }
15349       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   15349       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
15350       if (tmp___2) {   15350       if (tmp___2) {
15351     15351  
15352       } else {   15352       } else {
15353         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15353         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15354                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,   15354                             (Char const   *)"m_syswrap/syswrap-generic.c", 3115,
15355                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",   15355                             (Char const   *)"vgSysWrap_generic_sys_getgroups_before",
15356                             "");   15356                             "");
15357       }   15357       }
15358       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15358       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15359                                             (Char *)"getgroups(list)",   15359                                             (Char *)"getgroups(list)",
15360                                             (PtrdiffT )here___0,   15360                                             (PtrdiffT )here___0,
15361                                             (SizeT )sizeof(vki_gid_t *));   15361                                             (SizeT )sizeof(vki_gid_t *));
15362       break;   15362       break;
15363     }   15363     }
15364   } else {   15364   } else {
15365     15365  
15366   }   15366   }
15367   if (arrghs->arg1 > 0UL) {   15367   if (arrghs->arg1 > 0UL) {
15368     while (1) {   15368     while (1) {
15369       if (vgPlain_tdict.track_pre_mem_write) {   15369       if (vgPlain_tdict.track_pre_mem_write) {
15370         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   15370         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
15371                                                (Char *)"getgroups(list)",   15371                                                (Char *)"getgroups(list)",
15372                                                arrghs->arg2,   15372                                                arrghs->arg2,
15373                                                arrghs->arg1 * (UWord )sizeof(vki_gid_t ));   15373                                                arrghs->arg1 * (UWord )sizeof(vki_gid_t ));
15374       } else {   15374       } else {
15375     15375  
15376       }   15376       }
15377       break;   15377       break;
15378     }   15378     }
15379   } else {   15379   } else {
15380     15380  
15381   }   15381   }
15382   return;   15382   return;
15383 }   15383 }
15384 }   15384 }
15385 void vgSysWrap_generic_sys_getgroups_after(ThreadId tid , SyscallArgs *arrghs ,   15385 void vgSysWrap_generic_sys_getgroups_after(ThreadId tid , SyscallArgs *arrghs ,
15386                                            SyscallStatus *status )   15386                                            SyscallStatus *status )
15387 {   15387 {
15388   Bool tmp ;   15388   Bool tmp ;
15389   int tmp___0 ;   15389   int tmp___0 ;
15390   long tmp___1 ;   15390   long tmp___1 ;
15391   UWord tmp___2 ;   15391   UWord tmp___2 ;
15392   UWord tmp___3 ;   15392   UWord tmp___3 ;
15393     15393  
15394   {   15394   {
15395   if ((unsigned int )status->what == 1U) {   15395   if ((unsigned int )status->what == 1U) {
15396     tmp = sr_isError(status->sres);   15396     tmp = sr_isError(status->sres);
15397     if (tmp) {   15397     if (tmp) {
15398       tmp___0 = 0;   15398       tmp___0 = 0;
15399     } else {   15399     } else {
15400       tmp___0 = 1;   15400       tmp___0 = 1;
15401     }   15401     }
15402   } else {   15402   } else {
15403     tmp___0 = 0;   15403     tmp___0 = 0;
15404   }   15404   }
15405   tmp___1 = __builtin_expect((long )tmp___0, 1L);   15405   tmp___1 = __builtin_expect((long )tmp___0, 1L);
15406   if (tmp___1) {   15406   if (tmp___1) {
15407     15407  
15408   } else {   15408   } else {
15409     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   15409     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
15410                         (Char const   *)"m_syswrap/syswrap-generic.c", 3122,   15410                         (Char const   *)"m_syswrap/syswrap-generic.c", 3122,
15411                         (Char const   *)"vgSysWrap_generic_sys_getgroups_after",   15411                         (Char const   *)"vgSysWrap_generic_sys_getgroups_after",
15412                         "");   15412                         "");
15413   }   15413   }
15414   if (arrghs->arg1 > 0UL) {   15414   if (arrghs->arg1 > 0UL) {
15415     tmp___3 = getRES(status);   15415     tmp___3 = getRES(status);
15416     if (tmp___3 > 0UL) {   15416     if (tmp___3 > 0UL) {
15417       while (1) {   15417       while (1) {
15418         if (vgPlain_tdict.track_post_mem_write) {   15418         if (vgPlain_tdict.track_post_mem_write) {
15419           tmp___2 = getRES(status);   15419           tmp___2 = getRES(status);
15420           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   15420           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
15421                                                   arrghs->arg2,   15421                                                   arrghs->arg2,
15422                                                   tmp___2 * (UWord )sizeof(vki_gid_t ));   15422                                                   tmp___2 * (UWord )sizeof(vki_gid_t ));
15423         } else {   15423         } else {
15424     15424  
15425         }   15425         }
15426         break;   15426         break;
15427       }   15427       }
15428     } else {   15428     } else {
15429     15429  
15430     }   15430     }
15431   } else {   15431   } else {
15432     15432  
15433   }   15433   }
15434   return;   15434   return;
15435 }   15435 }
15436 }   15436 }
15437 void vgSysWrap_generic_sys_getcwd_before(ThreadId tid ,   15437 void vgSysWrap_generic_sys_getcwd_before(ThreadId tid ,
15438                                          SyscallArgLayout *layout ,   15438                                          SyscallArgLayout *layout ,
15439                                          SyscallArgs *arrghs ,   15439                                          SyscallArgs *arrghs ,
15440                                          SyscallStatus *status , UWord *flags )   15440                                          SyscallStatus *status , UWord *flags )
15441 {   15441 {
15442   Int here ;   15442   Int here ;
15443   long tmp ;   15443   long tmp ;
15444   long tmp___0 ;   15444   long tmp___0 ;
15445   Int here___0 ;   15445   Int here___0 ;
15446   long tmp___1 ;   15446   long tmp___1 ;
15447   long tmp___2 ;   15447   long tmp___2 ;
15448     15448  
15449   {   15449   {
15450   if (vgPlain_clo_trace_syscalls) {   15450   if (vgPlain_clo_trace_syscalls) {
15451     vgPlain_printf("sys_getcwd ( %#lx, %llu )", arrghs->arg1,   15451     vgPlain_printf("sys_getcwd ( %#lx, %llu )", arrghs->arg1,
15452                    (ULong )arrghs->arg2);   15452                    (ULong )arrghs->arg2);
15453   } else {   15453   } else {
15454     15454  
15455   }   15455   }
15456   if (vgPlain_tdict.track_pre_reg_read) {   15456   if (vgPlain_tdict.track_pre_reg_read) {
15457     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15457     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15458                                           (Char *)"(syscallno)",   15458                                           (Char *)"(syscallno)",
15459                                           (PtrdiffT )layout->o_sysno,   15459                                           (PtrdiffT )layout->o_sysno,
15460                                           (SizeT )sizeof(UWord ));   15460                                           (SizeT )sizeof(UWord ));
15461     while (1) {   15461     while (1) {
15462       here = layout->o_arg1;   15462       here = layout->o_arg1;
15463       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   15463       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
15464                              1L);   15464                              1L);
15465       if (tmp) {   15465       if (tmp) {
15466     15466  
15467       } else {   15467       } else {
15468         vgPlain_assert_fail((Bool )1,   15468         vgPlain_assert_fail((Bool )1,
15469                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   15469                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
15470                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,   15470                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,
15471                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",   15471                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",
15472                             "");   15472                             "");
15473       }   15473       }
15474       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   15474       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
15475       if (tmp___0) {   15475       if (tmp___0) {
15476     15476  
15477       } else {   15477       } else {
15478         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15478         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15479                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,   15479                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,
15480                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",   15480                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",
15481                             "");   15481                             "");
15482       }   15482       }
15483       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15483       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15484                                             (Char *)"getcwd(buf)",   15484                                             (Char *)"getcwd(buf)",
15485                                             (PtrdiffT )here,   15485                                             (PtrdiffT )here,
15486                                             (SizeT )sizeof(char *));   15486                                             (SizeT )sizeof(char *));
15487       break;   15487       break;
15488     }   15488     }
15489     while (1) {   15489     while (1) {
15490       here___0 = layout->o_arg2;   15490       here___0 = layout->o_arg2;
15491       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   15491       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
15492                                  1L);   15492                                  1L);
15493       if (tmp___1) {   15493       if (tmp___1) {
15494     15494  
15495       } else {   15495       } else {
15496         vgPlain_assert_fail((Bool )1,   15496         vgPlain_assert_fail((Bool )1,
15497                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   15497                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
15498                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,   15498                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,
15499                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",   15499                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",
15500                             "");   15500                             "");
15501       }   15501       }
15502       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   15502       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
15503       if (tmp___2) {   15503       if (tmp___2) {
15504     15504  
15505       } else {   15505       } else {
15506         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15506         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15507                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,   15507                             (Char const   *)"m_syswrap/syswrap-generic.c", 3136,
15508                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",   15508                             (Char const   *)"vgSysWrap_generic_sys_getcwd_before",
15509                             "");   15509                             "");
15510       }   15510       }
15511       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15511       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15512                                             (Char *)"getcwd(size)",   15512                                             (Char *)"getcwd(size)",
15513                                             (PtrdiffT )here___0,   15513                                             (PtrdiffT )here___0,
15514                                             (SizeT )sizeof(unsigned long ));   15514                                             (SizeT )sizeof(unsigned long ));
15515       break;   15515       break;
15516     }   15516     }
15517   } else {   15517   } else {
15518     15518  
15519   }   15519   }
15520   while (1) {   15520   while (1) {
15521     if (vgPlain_tdict.track_pre_mem_write) {   15521     if (vgPlain_tdict.track_pre_mem_write) {
15522       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   15522       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
15523                                              (Char *)"getcwd(buf)",   15523                                              (Char *)"getcwd(buf)",
15524                                              arrghs->arg1, arrghs->arg2);   15524                                              arrghs->arg1, arrghs->arg2);
15525     } else {   15525     } else {
15526     15526  
15527     }   15527     }
15528     break;   15528     break;
15529   }   15529   }
15530   return;   15530   return;
15531 }   15531 }
15532 }   15532 }
15533 void vgSysWrap_generic_sys_getcwd_after(ThreadId tid , SyscallArgs *arrghs ,   15533 void vgSysWrap_generic_sys_getcwd_after(ThreadId tid , SyscallArgs *arrghs ,
15534                                         SyscallStatus *status )   15534                                         SyscallStatus *status )
15535 {   15535 {
15536   Bool tmp ;   15536   Bool tmp ;
15537   int tmp___0 ;   15537   int tmp___0 ;
15538   long tmp___1 ;   15538   long tmp___1 ;
15539   UWord tmp___2 ;   15539   UWord tmp___2 ;
15540   UWord tmp___3 ;   15540   UWord tmp___3 ;
15541     15541  
15542   {   15542   {
15543   if ((unsigned int )status->what == 1U) {   15543   if ((unsigned int )status->what == 1U) {
15544     tmp = sr_isError(status->sres);   15544     tmp = sr_isError(status->sres);
15545     if (tmp) {   15545     if (tmp) {
15546       tmp___0 = 0;   15546       tmp___0 = 0;
15547     } else {   15547     } else {
15548       tmp___0 = 1;   15548       tmp___0 = 1;
15549     }   15549     }
15550   } else {   15550   } else {
15551     tmp___0 = 0;   15551     tmp___0 = 0;
15552   }   15552   }
15553   tmp___1 = __builtin_expect((long )tmp___0, 1L);   15553   tmp___1 = __builtin_expect((long )tmp___0, 1L);
15554   if (tmp___1) {   15554   if (tmp___1) {
15555     15555  
15556   } else {   15556   } else {
15557     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   15557     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
15558                         (Char const   *)"m_syswrap/syswrap-generic.c", 3142,   15558                         (Char const   *)"m_syswrap/syswrap-generic.c", 3142,
15559                         (Char const   *)"vgSysWrap_generic_sys_getcwd_after", "");   15559                         (Char const   *)"vgSysWrap_generic_sys_getcwd_after", "");
15560   }   15560   }
15561   tmp___3 = getRES(status);   15561   tmp___3 = getRES(status);
15562   if (tmp___3 != (Addr )((void *)0)) {   15562   if (tmp___3 != (Addr )((void *)0)) {
15563     while (1) {   15563     while (1) {
15564       if (vgPlain_tdict.track_post_mem_write) {   15564       if (vgPlain_tdict.track_post_mem_write) {
15565         tmp___2 = getRES(status);   15565         tmp___2 = getRES(status);
15566         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,   15566         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,
15567                                                 tmp___2);   15567                                                 tmp___2);
15568       } else {   15568       } else {
15569     15569  
15570       }   15570       }
15571       break;   15571       break;
15572     }   15572     }
15573   } else {   15573   } else {
15574     15574  
15575   }   15575   }
15576   return;   15576   return;
15577 }   15577 }
15578 }   15578 }
15579 void vgSysWrap_generic_sys_geteuid_before(ThreadId tid ,   15579 void vgSysWrap_generic_sys_geteuid_before(ThreadId tid ,
15580                                           SyscallArgLayout *layout ,   15580                                           SyscallArgLayout *layout ,
15581                                           SyscallArgs *arrghs ,   15581                                           SyscallArgs *arrghs ,
15582                                           SyscallStatus *status , UWord *flags )   15582                                           SyscallStatus *status , UWord *flags )
15583 {   15583 {
15584     15584  
15585     15585  
15586   {   15586   {
15587   if (vgPlain_clo_trace_syscalls) {   15587   if (vgPlain_clo_trace_syscalls) {
15588     vgPlain_printf("sys_geteuid ( )");   15588     vgPlain_printf("sys_geteuid ( )");
15589   } else {   15589   } else {
15590     15590  
15591   }   15591   }
15592   if (vgPlain_tdict.track_pre_reg_read) {   15592   if (vgPlain_tdict.track_pre_reg_read) {
15593     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15593     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15594                                           (Char *)"(syscallno)",   15594                                           (Char *)"(syscallno)",
15595                                           (PtrdiffT )layout->o_sysno,   15595                                           (PtrdiffT )layout->o_sysno,
15596                                           (SizeT )sizeof(UWord ));   15596                                           (SizeT )sizeof(UWord ));
15597   } else {   15597   } else {
15598     15598  
15599   }   15599   }
15600   return;   15600   return;
15601 }   15601 }
15602 }   15602 }
15603 void vgSysWrap_generic_sys_getegid_before(ThreadId tid ,   15603 void vgSysWrap_generic_sys_getegid_before(ThreadId tid ,
15604                                           SyscallArgLayout *layout ,   15604                                           SyscallArgLayout *layout ,
15605                                           SyscallArgs *arrghs ,   15605                                           SyscallArgs *arrghs ,
15606                                           SyscallStatus *status , UWord *flags )   15606                                           SyscallStatus *status , UWord *flags )
15607 {   15607 {
15608     15608  
15609     15609  
15610   {   15610   {
15611   if (vgPlain_clo_trace_syscalls) {   15611   if (vgPlain_clo_trace_syscalls) {
15612     vgPlain_printf("sys_getegid ( )");   15612     vgPlain_printf("sys_getegid ( )");
15613   } else {   15613   } else {
15614     15614  
15615   }   15615   }
15616   if (vgPlain_tdict.track_pre_reg_read) {   15616   if (vgPlain_tdict.track_pre_reg_read) {
15617     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15617     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15618                                           (Char *)"(syscallno)",   15618                                           (Char *)"(syscallno)",
15619                                           (PtrdiffT )layout->o_sysno,   15619                                           (PtrdiffT )layout->o_sysno,
15620                                           (SizeT )sizeof(UWord ));   15620                                           (SizeT )sizeof(UWord ));
15621   } else {   15621   } else {
15622     15622  
15623   }   15623   }
15624   return;   15624   return;
15625 }   15625 }
15626 }   15626 }
15627 void vgSysWrap_generic_sys_getgid_before(ThreadId tid ,   15627 void vgSysWrap_generic_sys_getgid_before(ThreadId tid ,
15628                                          SyscallArgLayout *layout ,   15628                                          SyscallArgLayout *layout ,
15629                                          SyscallArgs *arrghs ,   15629                                          SyscallArgs *arrghs ,
15630                                          SyscallStatus *status , UWord *flags )   15630                                          SyscallStatus *status , UWord *flags )
15631 {   15631 {
15632     15632  
15633     15633  
15634   {   15634   {
15635   if (vgPlain_clo_trace_syscalls) {   15635   if (vgPlain_clo_trace_syscalls) {
15636     vgPlain_printf("sys_getgid ( )");   15636     vgPlain_printf("sys_getgid ( )");
15637   } else {   15637   } else {
15638     15638  
15639   }   15639   }
15640   if (vgPlain_tdict.track_pre_reg_read) {   15640   if (vgPlain_tdict.track_pre_reg_read) {
15641     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15641     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15642                                           (Char *)"(syscallno)",   15642                                           (Char *)"(syscallno)",
15643                                           (PtrdiffT )layout->o_sysno,   15643                                           (PtrdiffT )layout->o_sysno,
15644                                           (SizeT )sizeof(UWord ));   15644                                           (SizeT )sizeof(UWord ));
15645   } else {   15645   } else {
15646     15646  
15647   }   15647   }
15648   return;   15648   return;
15649 }   15649 }
15650 }   15650 }
15651 void vgSysWrap_generic_sys_getpid_before(ThreadId tid ,   15651 void vgSysWrap_generic_sys_getpid_before(ThreadId tid ,
15652                                          SyscallArgLayout *layout ,   15652                                          SyscallArgLayout *layout ,
15653                                          SyscallArgs *arrghs ,   15653                                          SyscallArgs *arrghs ,
15654                                          SyscallStatus *status , UWord *flags )   15654                                          SyscallStatus *status , UWord *flags )
15655 {   15655 {
15656     15656  
15657     15657  
15658   {   15658   {
15659   if (vgPlain_clo_trace_syscalls) {   15659   if (vgPlain_clo_trace_syscalls) {
15660     vgPlain_printf("sys_getpid ()");   15660     vgPlain_printf("sys_getpid ()");
15661   } else {   15661   } else {
15662     15662  
15663   }   15663   }
15664   if (vgPlain_tdict.track_pre_reg_read) {   15664   if (vgPlain_tdict.track_pre_reg_read) {
15665     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15665     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15666                                           (Char *)"(syscallno)",   15666                                           (Char *)"(syscallno)",
15667                                           (PtrdiffT )layout->o_sysno,   15667                                           (PtrdiffT )layout->o_sysno,
15668                                           (SizeT )sizeof(UWord ));   15668                                           (SizeT )sizeof(UWord ));
15669   } else {   15669   } else {
15670     15670  
15671   }   15671   }
15672   return;   15672   return;
15673 }   15673 }
15674 }   15674 }
15675 void vgSysWrap_generic_sys_getpgid_before(ThreadId tid ,   15675 void vgSysWrap_generic_sys_getpgid_before(ThreadId tid ,
15676                                           SyscallArgLayout *layout ,   15676                                           SyscallArgLayout *layout ,
15677                                           SyscallArgs *arrghs ,   15677                                           SyscallArgs *arrghs ,
15678                                           SyscallStatus *status , UWord *flags )   15678                                           SyscallStatus *status , UWord *flags )
15679 {   15679 {
15680   Int here ;   15680   Int here ;
15681   long tmp ;   15681   long tmp ;
15682   long tmp___0 ;   15682   long tmp___0 ;
15683     15683  
15684   {   15684   {
15685   if (vgPlain_clo_trace_syscalls) {   15685   if (vgPlain_clo_trace_syscalls) {
15686     vgPlain_printf("sys_getpgid ( %ld )", arrghs->arg1);   15686     vgPlain_printf("sys_getpgid ( %ld )", arrghs->arg1);
15687   } else {   15687   } else {
15688     15688  
15689   }   15689   }
15690   if (vgPlain_tdict.track_pre_reg_read) {   15690   if (vgPlain_tdict.track_pre_reg_read) {
15691     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15691     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15692                                           (Char *)"(syscallno)",   15692                                           (Char *)"(syscallno)",
15693                                           (PtrdiffT )layout->o_sysno,   15693                                           (PtrdiffT )layout->o_sysno,
15694                                           (SizeT )sizeof(UWord ));   15694                                           (SizeT )sizeof(UWord ));
15695     while (1) {   15695     while (1) {
15696       here = layout->o_arg1;   15696       here = layout->o_arg1;
15697       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),   15697       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),
15698                              1L);   15698                              1L);
15699       if (tmp) {   15699       if (tmp) {
15700     15700  
15701       } else {   15701       } else {
15702         vgPlain_assert_fail((Bool )1,   15702         vgPlain_assert_fail((Bool )1,
15703                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",   15703                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",
15704                             (Char const   *)"m_syswrap/syswrap-generic.c", 3174,   15704                             (Char const   *)"m_syswrap/syswrap-generic.c", 3174,
15705                             (Char const   *)"vgSysWrap_generic_sys_getpgid_before",   15705                             (Char const   *)"vgSysWrap_generic_sys_getpgid_before",
15706                             "");   15706                             "");
15707       }   15707       }
15708       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   15708       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
15709       if (tmp___0) {   15709       if (tmp___0) {
15710     15710  
15711       } else {   15711       } else {
15712         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15712         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15713                             (Char const   *)"m_syswrap/syswrap-generic.c", 3174,   15713                             (Char const   *)"m_syswrap/syswrap-generic.c", 3174,
15714                             (Char const   *)"vgSysWrap_generic_sys_getpgid_before",   15714                             (Char const   *)"vgSysWrap_generic_sys_getpgid_before",
15715                             "");   15715                             "");
15716       }   15716       }
15717       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15717       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15718                                             (Char *)"getpgid(pid)",   15718                                             (Char *)"getpgid(pid)",
15719                                             (PtrdiffT )here,   15719                                             (PtrdiffT )here,
15720                                             (SizeT )sizeof(vki_pid_t ));   15720                                             (SizeT )sizeof(vki_pid_t ));
15721       break;   15721       break;
15722     }   15722     }
15723   } else {   15723   } else {
15724     15724  
15725   }   15725   }
15726   return;   15726   return;
15727 }   15727 }
15728 }   15728 }
15729 void vgSysWrap_generic_sys_getpgrp_before(ThreadId tid ,   15729 void vgSysWrap_generic_sys_getpgrp_before(ThreadId tid ,
15730                                           SyscallArgLayout *layout ,   15730                                           SyscallArgLayout *layout ,
15731                                           SyscallArgs *arrghs ,   15731                                           SyscallArgs *arrghs ,
15732                                           SyscallStatus *status , UWord *flags )   15732                                           SyscallStatus *status , UWord *flags )
15733 {   15733 {
15734     15734  
15735     15735  
15736   {   15736   {
15737   if (vgPlain_clo_trace_syscalls) {   15737   if (vgPlain_clo_trace_syscalls) {
15738     vgPlain_printf("sys_getpgrp ()");   15738     vgPlain_printf("sys_getpgrp ()");
15739   } else {   15739   } else {
15740     15740  
15741   }   15741   }
15742   if (vgPlain_tdict.track_pre_reg_read) {   15742   if (vgPlain_tdict.track_pre_reg_read) {
15743     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15743     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15744                                           (Char *)"(syscallno)",   15744                                           (Char *)"(syscallno)",
15745                                           (PtrdiffT )layout->o_sysno,   15745                                           (PtrdiffT )layout->o_sysno,
15746                                           (SizeT )sizeof(UWord ));   15746                                           (SizeT )sizeof(UWord ));
15747   } else {   15747   } else {
15748     15748  
15749   }   15749   }
15750   return;   15750   return;
15751 }   15751 }
15752 }   15752 }
15753 void vgSysWrap_generic_sys_getppid_before(ThreadId tid ,   15753 void vgSysWrap_generic_sys_getppid_before(ThreadId tid ,
15754                                           SyscallArgLayout *layout ,   15754                                           SyscallArgLayout *layout ,
15755                                           SyscallArgs *arrghs ,   15755                                           SyscallArgs *arrghs ,
15756                                           SyscallStatus *status , UWord *flags )   15756                                           SyscallStatus *status , UWord *flags )
15757 {   15757 {
15758     15758  
15759     15759  
15760   {   15760   {
15761   if (vgPlain_clo_trace_syscalls) {   15761   if (vgPlain_clo_trace_syscalls) {
15762     vgPlain_printf("sys_getppid ()");   15762     vgPlain_printf("sys_getppid ()");
15763   } else {   15763   } else {
15764     15764  
15765   }   15765   }
15766   if (vgPlain_tdict.track_pre_reg_read) {   15766   if (vgPlain_tdict.track_pre_reg_read) {
15767     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15767     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15768                                           (Char *)"(syscallno)",   15768                                           (Char *)"(syscallno)",
15769                                           (PtrdiffT )layout->o_sysno,   15769                                           (PtrdiffT )layout->o_sysno,
15770                                           (SizeT )sizeof(UWord ));   15770                                           (SizeT )sizeof(UWord ));
15771   } else {   15771   } else {
15772     15772  
15773   }   15773   }
15774   return;   15774   return;
15775 }   15775 }
15776 }   15776 }
15777 static void common_post_getrlimit(ThreadId tid , UWord a1 , UWord a2 )   15777 static void common_post_getrlimit(ThreadId tid , UWord a1 , UWord a2 )
15778 {   15778 {
15779     15779  
15780     15780  
15781   {   15781   {
15782   while (1) {   15782   while (1) {
15783     if (vgPlain_tdict.track_post_mem_write) {   15783     if (vgPlain_tdict.track_post_mem_write) {
15784       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, a2,   15784       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, a2,
15785                                               (SizeT )sizeof(struct vki_rlimit ));   15785                                               (SizeT )sizeof(struct vki_rlimit ));
15786     } else {   15786     } else {
15787     15787  
15788     }   15788     }
15789     break;   15789     break;
15790   }   15790   }
15791   switch (a1) {   15791   switch (a1) {
15792   case 7UL:   15792   case 7UL:
15793   ((struct vki_rlimit *)a2)->rlim_cur = (unsigned long )vgPlain_fd_soft_limit;   15793   ((struct vki_rlimit *)a2)->rlim_cur = (unsigned long )vgPlain_fd_soft_limit;
15794   ((struct vki_rlimit *)a2)->rlim_max = (unsigned long )vgPlain_fd_hard_limit;   15794   ((struct vki_rlimit *)a2)->rlim_max = (unsigned long )vgPlain_fd_hard_limit;
15795   break;   15795   break;
15796   case 2UL:   15796   case 2UL:
15797   *((struct vki_rlimit *)a2) = vgPlain_client_rlimit_data;   15797   *((struct vki_rlimit *)a2) = vgPlain_client_rlimit_data;
15798   break;   15798   break;
15799   case 3UL:   15799   case 3UL:
15800   *((struct vki_rlimit *)a2) = vgPlain_client_rlimit_stack;   15800   *((struct vki_rlimit *)a2) = vgPlain_client_rlimit_stack;
15801   break;   15801   break;
15802   }   15802   }
15803   return;   15803   return;
15804 }   15804 }
15805 }   15805 }
15806 void vgSysWrap_generic_sys_old_getrlimit_before(ThreadId tid ,   15806 void vgSysWrap_generic_sys_old_getrlimit_before(ThreadId tid ,
15807                                                 SyscallArgLayout *layout ,   15807                                                 SyscallArgLayout *layout ,
15808                                                 SyscallArgs *arrghs ,   15808                                                 SyscallArgs *arrghs ,
15809                                                 SyscallStatus *status ,   15809                                                 SyscallStatus *status ,
15810                                                 UWord *flags )   15810                                                 UWord *flags )
15811 {   15811 {
15812   Int here ;   15812   Int here ;
15813   long tmp ;   15813   long tmp ;
15814   long tmp___0 ;   15814   long tmp___0 ;
15815   Int here___0 ;   15815   Int here___0 ;
15816   long tmp___1 ;   15816   long tmp___1 ;
15817   long tmp___2 ;   15817   long tmp___2 ;
15818     15818  
15819   {   15819   {
15820   if (vgPlain_clo_trace_syscalls) {   15820   if (vgPlain_clo_trace_syscalls) {
15821     vgPlain_printf("sys_old_getrlimit ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   15821     vgPlain_printf("sys_old_getrlimit ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
15822   } else {   15822   } else {
15823     15823  
15824   }   15824   }
15825   if (vgPlain_tdict.track_pre_reg_read) {   15825   if (vgPlain_tdict.track_pre_reg_read) {
15826     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15826     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15827                                           (Char *)"(syscallno)",   15827                                           (Char *)"(syscallno)",
15828                                           (PtrdiffT )layout->o_sysno,   15828                                           (PtrdiffT )layout->o_sysno,
15829                                           (SizeT )sizeof(UWord ));   15829                                           (SizeT )sizeof(UWord ));
15830     while (1) {   15830     while (1) {
15831       here = layout->o_arg1;   15831       here = layout->o_arg1;
15832       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   15832       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
15833                              1L);   15833                              1L);
15834       if (tmp) {   15834       if (tmp) {
15835     15835  
15836       } else {   15836       } else {
15837         vgPlain_assert_fail((Bool )1,   15837         vgPlain_assert_fail((Bool )1,
15838                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   15838                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
15839                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,   15839                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,
15840                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",   15840                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",
15841                             "");   15841                             "");
15842       }   15842       }
15843       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   15843       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
15844       if (tmp___0) {   15844       if (tmp___0) {
15845     15845  
15846       } else {   15846       } else {
15847         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15847         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15848                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,   15848                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,
15849                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",   15849                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",
15850                             "");   15850                             "");
15851       }   15851       }
15852       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15852       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15853                                             (Char *)"old_getrlimit(resource)",   15853                                             (Char *)"old_getrlimit(resource)",
15854                                             (PtrdiffT )here,   15854                                             (PtrdiffT )here,
15855                                             (SizeT )sizeof(unsigned int ));   15855                                             (SizeT )sizeof(unsigned int ));
15856       break;   15856       break;
15857     }   15857     }
15858     while (1) {   15858     while (1) {
15859       here___0 = layout->o_arg2;   15859       here___0 = layout->o_arg2;
15860       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rlimit *) <= sizeof(UWord )))),   15860       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rlimit *) <= sizeof(UWord )))),
15861                                  1L);   15861                                  1L);
15862       if (tmp___1) {   15862       if (tmp___1) {
15863     15863  
15864       } else {   15864       } else {
15865         vgPlain_assert_fail((Bool )1,   15865         vgPlain_assert_fail((Bool )1,
15866                             (Char const   *)"sizeof(struct rlimit *) <= sizeof(UWord)",   15866                             (Char const   *)"sizeof(struct rlimit *) <= sizeof(UWord)",
15867                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,   15867                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,
15868                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",   15868                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",
15869                             "");   15869                             "");
15870       }   15870       }
15871       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   15871       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
15872       if (tmp___2) {   15872       if (tmp___2) {
15873     15873  
15874       } else {   15874       } else {
15875         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15875         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15876                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,   15876                             (Char const   *)"m_syswrap/syswrap-generic.c", 3219,
15877                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",   15877                             (Char const   *)"vgSysWrap_generic_sys_old_getrlimit_before",
15878                             "");   15878                             "");
15879       }   15879       }
15880       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15880       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15881                                             (Char *)"old_getrlimit(rlim)",   15881                                             (Char *)"old_getrlimit(rlim)",
15882                                             (PtrdiffT )here___0,   15882                                             (PtrdiffT )here___0,
15883                                             (SizeT )sizeof(struct rlimit *));   15883                                             (SizeT )sizeof(struct rlimit *));
15884       break;   15884       break;
15885     }   15885     }
15886   } else {   15886   } else {
15887     15887  
15888   }   15888   }
15889   while (1) {   15889   while (1) {
15890     if (vgPlain_tdict.track_pre_mem_write) {   15890     if (vgPlain_tdict.track_pre_mem_write) {
15891       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   15891       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
15892                                              (Char *)"old_getrlimit(rlim)",   15892                                              (Char *)"old_getrlimit(rlim)",
15893                                              arrghs->arg2,   15893                                              arrghs->arg2,
15894                                              (SizeT )sizeof(struct vki_rlimit ));   15894                                              (SizeT )sizeof(struct vki_rlimit ));
15895     } else {   15895     } else {
15896     15896  
15897     }   15897     }
15898     break;   15898     break;
15899   }   15899   }
15900   return;   15900   return;
15901 }   15901 }
15902 }   15902 }
15903 void vgSysWrap_generic_sys_old_getrlimit_after(ThreadId tid ,   15903 void vgSysWrap_generic_sys_old_getrlimit_after(ThreadId tid ,
15904                                                SyscallArgs *arrghs ,   15904                                                SyscallArgs *arrghs ,
15905                                                SyscallStatus *status )   15905                                                SyscallStatus *status )
15906 {   15906 {
15907     15907  
15908     15908  
15909   {   15909   {
15910   common_post_getrlimit(tid, arrghs->arg1, arrghs->arg2);   15910   common_post_getrlimit(tid, arrghs->arg1, arrghs->arg2);
15911   return;   15911   return;
15912 }   15912 }
15913 }   15913 }
15914 void vgSysWrap_generic_sys_getrlimit_before(ThreadId tid ,   15914 void vgSysWrap_generic_sys_getrlimit_before(ThreadId tid ,
15915                                             SyscallArgLayout *layout ,   15915                                             SyscallArgLayout *layout ,
15916                                             SyscallArgs *arrghs ,   15916                                             SyscallArgs *arrghs ,
15917                                             SyscallStatus *status ,   15917                                             SyscallStatus *status ,
15918                                             UWord *flags )   15918                                             UWord *flags )
15919 {   15919 {
15920   Int here ;   15920   Int here ;
15921   long tmp ;   15921   long tmp ;
15922   long tmp___0 ;   15922   long tmp___0 ;
15923   Int here___0 ;   15923   Int here___0 ;
15924   long tmp___1 ;   15924   long tmp___1 ;
15925   long tmp___2 ;   15925   long tmp___2 ;
15926     15926  
15927   {   15927   {
15928   if (vgPlain_clo_trace_syscalls) {   15928   if (vgPlain_clo_trace_syscalls) {
15929     vgPlain_printf("sys_getrlimit ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   15929     vgPlain_printf("sys_getrlimit ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
15930   } else {   15930   } else {
15931     15931  
15932   }   15932   }
15933   if (vgPlain_tdict.track_pre_reg_read) {   15933   if (vgPlain_tdict.track_pre_reg_read) {
15934     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15934     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15935                                           (Char *)"(syscallno)",   15935                                           (Char *)"(syscallno)",
15936                                           (PtrdiffT )layout->o_sysno,   15936                                           (PtrdiffT )layout->o_sysno,
15937                                           (SizeT )sizeof(UWord ));   15937                                           (SizeT )sizeof(UWord ));
15938     while (1) {   15938     while (1) {
15939       here = layout->o_arg1;   15939       here = layout->o_arg1;
15940       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   15940       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
15941                              1L);   15941                              1L);
15942       if (tmp) {   15942       if (tmp) {
15943     15943  
15944       } else {   15944       } else {
15945         vgPlain_assert_fail((Bool )1,   15945         vgPlain_assert_fail((Bool )1,
15946                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   15946                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
15947                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,   15947                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,
15948                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",   15948                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",
15949                             "");   15949                             "");
15950       }   15950       }
15951       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   15951       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
15952       if (tmp___0) {   15952       if (tmp___0) {
15953     15953  
15954       } else {   15954       } else {
15955         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15955         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15956                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,   15956                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,
15957                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",   15957                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",
15958                             "");   15958                             "");
15959       }   15959       }
15960       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15960       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15961                                             (Char *)"getrlimit(resource)",   15961                                             (Char *)"getrlimit(resource)",
15962                                             (PtrdiffT )here,   15962                                             (PtrdiffT )here,
15963                                             (SizeT )sizeof(unsigned int ));   15963                                             (SizeT )sizeof(unsigned int ));
15964       break;   15964       break;
15965     }   15965     }
15966     while (1) {   15966     while (1) {
15967       here___0 = layout->o_arg2;   15967       here___0 = layout->o_arg2;
15968       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rlimit *) <= sizeof(UWord )))),   15968       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rlimit *) <= sizeof(UWord )))),
15969                                  1L);   15969                                  1L);
15970       if (tmp___1) {   15970       if (tmp___1) {
15971     15971  
15972       } else {   15972       } else {
15973         vgPlain_assert_fail((Bool )1,   15973         vgPlain_assert_fail((Bool )1,
15974                             (Char const   *)"sizeof(struct rlimit *) <= sizeof(UWord)",   15974                             (Char const   *)"sizeof(struct rlimit *) <= sizeof(UWord)",
15975                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,   15975                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,
15976                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",   15976                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",
15977                             "");   15977                             "");
15978       }   15978       }
15979       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   15979       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
15980       if (tmp___2) {   15980       if (tmp___2) {
15981     15981  
15982       } else {   15982       } else {
15983         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   15983         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
15984                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,   15984                             (Char const   *)"m_syswrap/syswrap-generic.c", 3232,
15985                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",   15985                             (Char const   *)"vgSysWrap_generic_sys_getrlimit_before",
15986                             "");   15986                             "");
15987       }   15987       }
15988       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   15988       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
15989                                             (Char *)"getrlimit(rlim)",   15989                                             (Char *)"getrlimit(rlim)",
15990                                             (PtrdiffT )here___0,   15990                                             (PtrdiffT )here___0,
15991                                             (SizeT )sizeof(struct rlimit *));   15991                                             (SizeT )sizeof(struct rlimit *));
15992       break;   15992       break;
15993     }   15993     }
15994   } else {   15994   } else {
15995     15995  
15996   }   15996   }
15997   while (1) {   15997   while (1) {
15998     if (vgPlain_tdict.track_pre_mem_write) {   15998     if (vgPlain_tdict.track_pre_mem_write) {
15999       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   15999       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
16000                                              (Char *)"getrlimit(rlim)",   16000                                              (Char *)"getrlimit(rlim)",
16001                                              arrghs->arg2,   16001                                              arrghs->arg2,
16002                                              (SizeT )sizeof(struct vki_rlimit ));   16002                                              (SizeT )sizeof(struct vki_rlimit ));
16003     } else {   16003     } else {
16004     16004  
16005     }   16005     }
16006     break;   16006     break;
16007   }   16007   }
16008   return;   16008   return;
16009 }   16009 }
16010 }   16010 }
16011 void vgSysWrap_generic_sys_getrlimit_after(ThreadId tid , SyscallArgs *arrghs ,   16011 void vgSysWrap_generic_sys_getrlimit_after(ThreadId tid , SyscallArgs *arrghs ,
16012                                            SyscallStatus *status )   16012                                            SyscallStatus *status )
16013 {   16013 {
16014     16014  
16015     16015  
16016   {   16016   {
16017   common_post_getrlimit(tid, arrghs->arg1, arrghs->arg2);   16017   common_post_getrlimit(tid, arrghs->arg1, arrghs->arg2);
16018   return;   16018   return;
16019 }   16019 }
16020 }   16020 }
16021 void vgSysWrap_generic_sys_getrusage_before(ThreadId tid ,   16021 void vgSysWrap_generic_sys_getrusage_before(ThreadId tid ,
16022                                             SyscallArgLayout *layout ,   16022                                             SyscallArgLayout *layout ,
16023                                             SyscallArgs *arrghs ,   16023                                             SyscallArgs *arrghs ,
16024                                             SyscallStatus *status ,   16024                                             SyscallStatus *status ,
16025                                             UWord *flags )   16025                                             UWord *flags )
16026 {   16026 {
16027   Int here ;   16027   Int here ;
16028   long tmp ;   16028   long tmp ;
16029   long tmp___0 ;   16029   long tmp___0 ;
16030   Int here___0 ;   16030   Int here___0 ;
16031   long tmp___1 ;   16031   long tmp___1 ;
16032   long tmp___2 ;   16032   long tmp___2 ;
16033     16033  
16034   {   16034   {
16035   if (vgPlain_clo_trace_syscalls) {   16035   if (vgPlain_clo_trace_syscalls) {
16036     vgPlain_printf("sys_getrusage ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   16036     vgPlain_printf("sys_getrusage ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
16037   } else {   16037   } else {
16038     16038  
16039   }   16039   }
16040   if (vgPlain_tdict.track_pre_reg_read) {   16040   if (vgPlain_tdict.track_pre_reg_read) {
16041     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16041     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16042                                           (Char *)"(syscallno)",   16042                                           (Char *)"(syscallno)",
16043                                           (PtrdiffT )layout->o_sysno,   16043                                           (PtrdiffT )layout->o_sysno,
16044                                           (SizeT )sizeof(UWord ));   16044                                           (SizeT )sizeof(UWord ));
16045     while (1) {   16045     while (1) {
16046       here = layout->o_arg1;   16046       here = layout->o_arg1;
16047       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   16047       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
16048       if (tmp) {   16048       if (tmp) {
16049     16049  
16050       } else {   16050       } else {
16051         vgPlain_assert_fail((Bool )1,   16051         vgPlain_assert_fail((Bool )1,
16052                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   16052                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
16053                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,   16053                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,
16054                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",   16054                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",
16055                             "");   16055                             "");
16056       }   16056       }
16057       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   16057       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
16058       if (tmp___0) {   16058       if (tmp___0) {
16059     16059  
16060       } else {   16060       } else {
16061         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16061         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16062                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,   16062                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,
16063                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",   16063                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",
16064                             "");   16064                             "");
16065       }   16065       }
16066       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16066       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16067                                             (Char *)"getrusage(who)",   16067                                             (Char *)"getrusage(who)",
16068                                             (PtrdiffT )here,   16068                                             (PtrdiffT )here,
16069                                             (SizeT )sizeof(int ));   16069                                             (SizeT )sizeof(int ));
16070       break;   16070       break;
16071     }   16071     }
16072     while (1) {   16072     while (1) {
16073       here___0 = layout->o_arg2;   16073       here___0 = layout->o_arg2;
16074       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rusage *) <= sizeof(UWord )))),   16074       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rusage *) <= sizeof(UWord )))),
16075                                  1L);   16075                                  1L);
16076       if (tmp___1) {   16076       if (tmp___1) {
16077     16077  
16078       } else {   16078       } else {
16079         vgPlain_assert_fail((Bool )1,   16079         vgPlain_assert_fail((Bool )1,
16080                             (Char const   *)"sizeof(struct rusage *) <= sizeof(UWord)",   16080                             (Char const   *)"sizeof(struct rusage *) <= sizeof(UWord)",
16081                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,   16081                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,
16082                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",   16082                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",
16083                             "");   16083                             "");
16084       }   16084       }
16085       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   16085       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
16086       if (tmp___2) {   16086       if (tmp___2) {
16087     16087  
16088       } else {   16088       } else {
16089         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16089         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16090                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,   16090                             (Char const   *)"m_syswrap/syswrap-generic.c", 3244,
16091                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",   16091                             (Char const   *)"vgSysWrap_generic_sys_getrusage_before",
16092                             "");   16092                             "");
16093       }   16093       }
16094       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16094       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16095                                             (Char *)"getrusage(usage)",   16095                                             (Char *)"getrusage(usage)",
16096                                             (PtrdiffT )here___0,   16096                                             (PtrdiffT )here___0,
16097                                             (SizeT )sizeof(struct rusage *));   16097                                             (SizeT )sizeof(struct rusage *));
16098       break;   16098       break;
16099     }   16099     }
16100   } else {   16100   } else {
16101     16101  
16102   }   16102   }
16103   while (1) {   16103   while (1) {
16104     if (vgPlain_tdict.track_pre_mem_write) {   16104     if (vgPlain_tdict.track_pre_mem_write) {
16105       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   16105       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
16106                                              (Char *)"getrusage(usage)",   16106                                              (Char *)"getrusage(usage)",
16107                                              arrghs->arg2,   16107                                              arrghs->arg2,
16108                                              (SizeT )sizeof(struct vki_rusage ));   16108                                              (SizeT )sizeof(struct vki_rusage ));
16109     } else {   16109     } else {
16110     16110  
16111     }   16111     }
16112     break;   16112     break;
16113   }   16113   }
16114   return;   16114   return;
16115 }   16115 }
16116 }   16116 }
16117 void vgSysWrap_generic_sys_getrusage_after(ThreadId tid , SyscallArgs *arrghs ,   16117 void vgSysWrap_generic_sys_getrusage_after(ThreadId tid , SyscallArgs *arrghs ,
16118                                            SyscallStatus *status )   16118                                            SyscallStatus *status )
16119 {   16119 {
16120   Bool tmp ;   16120   Bool tmp ;
16121   int tmp___0 ;   16121   int tmp___0 ;
16122   long tmp___1 ;   16122   long tmp___1 ;
16123   UWord tmp___2 ;   16123   UWord tmp___2 ;
16124     16124  
16125   {   16125   {
16126   if ((unsigned int )status->what == 1U) {   16126   if ((unsigned int )status->what == 1U) {
16127     tmp = sr_isError(status->sres);   16127     tmp = sr_isError(status->sres);
16128     if (tmp) {   16128     if (tmp) {
16129       tmp___0 = 0;   16129       tmp___0 = 0;
16130     } else {   16130     } else {
16131       tmp___0 = 1;   16131       tmp___0 = 1;
16132     }   16132     }
16133   } else {   16133   } else {
16134     tmp___0 = 0;   16134     tmp___0 = 0;
16135   }   16135   }
16136   tmp___1 = __builtin_expect((long )tmp___0, 1L);   16136   tmp___1 = __builtin_expect((long )tmp___0, 1L);
16137   if (tmp___1) {   16137   if (tmp___1) {
16138     16138  
16139   } else {   16139   } else {
16140     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   16140     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
16141                         (Char const   *)"m_syswrap/syswrap-generic.c", 3250,   16141                         (Char const   *)"m_syswrap/syswrap-generic.c", 3250,
16142                         (Char const   *)"vgSysWrap_generic_sys_getrusage_after",   16142                         (Char const   *)"vgSysWrap_generic_sys_getrusage_after",
16143                         "");   16143                         "");
16144   }   16144   }
16145   tmp___2 = getRES(status);   16145   tmp___2 = getRES(status);
16146   if (tmp___2 == 0UL) {   16146   if (tmp___2 == 0UL) {
16147     while (1) {   16147     while (1) {
16148       if (vgPlain_tdict.track_post_mem_write) {   16148       if (vgPlain_tdict.track_post_mem_write) {
16149         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   16149         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
16150                                                 (SizeT )sizeof(struct vki_rusage ));   16150                                                 (SizeT )sizeof(struct vki_rusage ));
16151       } else {   16151       } else {
16152     16152  
16153       }   16153       }
16154       break;   16154       break;
16155     }   16155     }
16156   } else {   16156   } else {
16157     16157  
16158   }   16158   }
16159   return;   16159   return;
16160 }   16160 }
16161 }   16161 }
16162 void vgSysWrap_generic_sys_gettimeofday_before(ThreadId tid ,   16162 void vgSysWrap_generic_sys_gettimeofday_before(ThreadId tid ,
16163                                                SyscallArgLayout *layout ,   16163                                                SyscallArgLayout *layout ,
16164                                                SyscallArgs *arrghs ,   16164                                                SyscallArgs *arrghs ,
16165                                                SyscallStatus *status ,   16165                                                SyscallStatus *status ,
16166                                                UWord *flags )   16166                                                UWord *flags )
16167 {   16167 {
16168   Int here ;   16168   Int here ;
16169   long tmp ;   16169   long tmp ;
16170   long tmp___0 ;   16170   long tmp___0 ;
16171   Int here___0 ;   16171   Int here___0 ;
16172   long tmp___1 ;   16172   long tmp___1 ;
16173   long tmp___2 ;   16173   long tmp___2 ;
16174   struct vki_timeval *zztv ;   16174   struct vki_timeval *zztv ;
16175     16175  
16176   {   16176   {
16177   if (vgPlain_clo_trace_syscalls) {   16177   if (vgPlain_clo_trace_syscalls) {
16178     vgPlain_printf("sys_gettimeofday ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);   16178     vgPlain_printf("sys_gettimeofday ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);
16179   } else {   16179   } else {
16180     16180  
16181   }   16181   }
16182   if (vgPlain_tdict.track_pre_reg_read) {   16182   if (vgPlain_tdict.track_pre_reg_read) {
16183     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16183     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16184                                           (Char *)"(syscallno)",   16184                                           (Char *)"(syscallno)",
16185                                           (PtrdiffT )layout->o_sysno,   16185                                           (PtrdiffT )layout->o_sysno,
16186                                           (SizeT )sizeof(UWord ));   16186                                           (SizeT )sizeof(UWord ));
16187     while (1) {   16187     while (1) {
16188       here = layout->o_arg1;   16188       here = layout->o_arg1;
16189       tmp = __builtin_expect((long )(! (! (sizeof(struct timeval *) <= sizeof(UWord )))),   16189       tmp = __builtin_expect((long )(! (! (sizeof(struct timeval *) <= sizeof(UWord )))),
16190                              1L);   16190                              1L);
16191       if (tmp) {   16191       if (tmp) {
16192     16192  
16193       } else {   16193       } else {
16194         vgPlain_assert_fail((Bool )1,   16194         vgPlain_assert_fail((Bool )1,
16195                             (Char const   *)"sizeof(struct timeval *) <= sizeof(UWord)",   16195                             (Char const   *)"sizeof(struct timeval *) <= sizeof(UWord)",
16196                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,   16196                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,
16197                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",   16197                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",
16198                             "");   16198                             "");
16199       }   16199       }
16200       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   16200       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
16201       if (tmp___0) {   16201       if (tmp___0) {
16202     16202  
16203       } else {   16203       } else {
16204         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16204         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16205                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,   16205                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,
16206                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",   16206                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",
16207                             "");   16207                             "");
16208       }   16208       }
16209       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16209       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16210                                             (Char *)"gettimeofday(tv)",   16210                                             (Char *)"gettimeofday(tv)",
16211                                             (PtrdiffT )here,   16211                                             (PtrdiffT )here,
16212                                             (SizeT )sizeof(struct timeval *));   16212                                             (SizeT )sizeof(struct timeval *));
16213       break;   16213       break;
16214     }   16214     }
16215     while (1) {   16215     while (1) {
16216       here___0 = layout->o_arg2;   16216       here___0 = layout->o_arg2;
16217       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct timezone *) <= sizeof(UWord )))),   16217       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct timezone *) <= sizeof(UWord )))),
16218                                  1L);   16218                                  1L);
16219       if (tmp___1) {   16219       if (tmp___1) {
16220     16220  
16221       } else {   16221       } else {
16222         vgPlain_assert_fail((Bool )1,   16222         vgPlain_assert_fail((Bool )1,
16223                             (Char const   *)"sizeof(struct timezone *) <= sizeof(UWord)",   16223                             (Char const   *)"sizeof(struct timezone *) <= sizeof(UWord)",
16224                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,   16224                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,
16225                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",   16225                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",
16226                             "");   16226                             "");
16227       }   16227       }
16228       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   16228       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
16229       if (tmp___2) {   16229       if (tmp___2) {
16230     16230  
16231       } else {   16231       } else {
16232         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16232         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16233                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,   16233                             (Char const   *)"m_syswrap/syswrap-generic.c", 3259,
16234                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",   16234                             (Char const   *)"vgSysWrap_generic_sys_gettimeofday_before",
16235                             "");   16235                             "");
16236       }   16236       }
16237       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16237       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16238                                             (Char *)"gettimeofday(tz)",   16238                                             (Char *)"gettimeofday(tz)",
16239                                             (PtrdiffT )here___0,   16239                                             (PtrdiffT )here___0,
16240                                             (SizeT )sizeof(struct timezone *));   16240                                             (SizeT )sizeof(struct timezone *));
16241       break;   16241       break;
16242     }   16242     }
16243   } else {   16243   } else {
16244     16244  
16245   }   16245   }
16246   if (arrghs->arg1 != 0UL) {   16246   if (arrghs->arg1 != 0UL) {
16247     while (1) {   16247     while (1) {
16248       zztv = (struct vki_timeval *)arrghs->arg1;   16248       zztv = (struct vki_timeval *)arrghs->arg1;
16249       while (1) {   16249       while (1) {
16250         if (vgPlain_tdict.track_pre_mem_write) {   16250         if (vgPlain_tdict.track_pre_mem_write) {
16251           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   16251           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
16252                                                  (Char *)"gettimeofday(tv)",   16252                                                  (Char *)"gettimeofday(tv)",
16253                                                  (UWord )(& zztv->tv_sec),   16253                                                  (UWord )(& zztv->tv_sec),
16254                                                  (SizeT )sizeof(zztv->tv_sec));   16254                                                  (SizeT )sizeof(zztv->tv_sec));
16255         } else {   16255         } else {
16256     16256  
16257         }   16257         }
16258         break;   16258         break;
16259       }   16259       }
16260       while (1) {   16260       while (1) {
16261         if (vgPlain_tdict.track_pre_mem_write) {   16261         if (vgPlain_tdict.track_pre_mem_write) {
16262           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   16262           (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
16263                                                  (Char *)"gettimeofday(tv)",   16263                                                  (Char *)"gettimeofday(tv)",
16264                                                  (UWord )(& zztv->tv_usec),   16264                                                  (UWord )(& zztv->tv_usec),
16265                                                  (SizeT )sizeof(zztv->tv_usec));   16265                                                  (SizeT )sizeof(zztv->tv_usec));
16266         } else {   16266         } else {
16267     16267  
16268         }   16268         }
16269         break;   16269         break;
16270       }   16270       }
16271       break;   16271       break;
16272     }   16272     }
16273   } else {   16273   } else {
16274     16274  
16275   }   16275   }
16276   if (arrghs->arg2 != 0UL) {   16276   if (arrghs->arg2 != 0UL) {
16277     while (1) {   16277     while (1) {
16278       if (vgPlain_tdict.track_pre_mem_write) {   16278       if (vgPlain_tdict.track_pre_mem_write) {
16279         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   16279         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
16280                                                (Char *)"gettimeofday(tz)",   16280                                                (Char *)"gettimeofday(tz)",
16281                                                arrghs->arg2,   16281                                                arrghs->arg2,
16282                                                (SizeT )sizeof(struct vki_timezone ));   16282                                                (SizeT )sizeof(struct vki_timezone ));
16283       } else {   16283       } else {
16284     16284  
16285       }   16285       }
16286       break;   16286       break;
16287     }   16287     }
16288   } else {   16288   } else {
16289     16289  
16290   }   16290   }
16291   return;   16291   return;
16292 }   16292 }
16293 }   16293 }
16294 void vgSysWrap_generic_sys_gettimeofday_after(ThreadId tid ,   16294 void vgSysWrap_generic_sys_gettimeofday_after(ThreadId tid ,
16295                                               SyscallArgs *arrghs ,   16295                                               SyscallArgs *arrghs ,
16296                                               SyscallStatus *status )   16296                                               SyscallStatus *status )
16297 {   16297 {
16298   Bool tmp ;   16298   Bool tmp ;
16299   int tmp___0 ;   16299   int tmp___0 ;
16300   long tmp___1 ;   16300   long tmp___1 ;
16301   struct vki_timeval *zztv ;   16301   struct vki_timeval *zztv ;
16302   UWord tmp___2 ;   16302   UWord tmp___2 ;
16303     16303  
16304   {   16304   {
16305   if ((unsigned int )status->what == 1U) {   16305   if ((unsigned int )status->what == 1U) {
16306     tmp = sr_isError(status->sres);   16306     tmp = sr_isError(status->sres);
16307     if (tmp) {   16307     if (tmp) {
16308       tmp___0 = 0;   16308       tmp___0 = 0;
16309     } else {   16309     } else {
16310       tmp___0 = 1;   16310       tmp___0 = 1;
16311     }   16311     }
16312   } else {   16312   } else {
16313     tmp___0 = 0;   16313     tmp___0 = 0;
16314   }   16314   }
16315   tmp___1 = __builtin_expect((long )tmp___0, 1L);   16315   tmp___1 = __builtin_expect((long )tmp___0, 1L);
16316   if (tmp___1) {   16316   if (tmp___1) {
16317     16317  
16318   } else {   16318   } else {
16319     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   16319     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
16320                         (Char const   *)"m_syswrap/syswrap-generic.c", 3269,   16320                         (Char const   *)"m_syswrap/syswrap-generic.c", 3269,
16321                         (Char const   *)"vgSysWrap_generic_sys_gettimeofday_after",   16321                         (Char const   *)"vgSysWrap_generic_sys_gettimeofday_after",
16322                         "");   16322                         "");
16323   }   16323   }
16324   tmp___2 = getRES(status);   16324   tmp___2 = getRES(status);
16325   if (tmp___2 == 0UL) {   16325   if (tmp___2 == 0UL) {
16326     if (arrghs->arg1 != 0UL) {   16326     if (arrghs->arg1 != 0UL) {
16327       while (1) {   16327       while (1) {
16328         zztv = (struct vki_timeval *)arrghs->arg1;   16328         zztv = (struct vki_timeval *)arrghs->arg1;
16329         while (1) {   16329         while (1) {
16330           if (vgPlain_tdict.track_post_mem_write) {   16330           if (vgPlain_tdict.track_post_mem_write) {
16331             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   16331             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
16332                                                     (UWord )(& zztv->tv_sec),   16332                                                     (UWord )(& zztv->tv_sec),
16333                                                     (SizeT )sizeof(zztv->tv_sec));   16333                                                     (SizeT )sizeof(zztv->tv_sec));
16334           } else {   16334           } else {
16335     16335  
16336           }   16336           }
16337           break;   16337           break;
16338         }   16338         }
16339         while (1) {   16339         while (1) {
16340           if (vgPlain_tdict.track_post_mem_write) {   16340           if (vgPlain_tdict.track_post_mem_write) {
16341             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   16341             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
16342                                                     (UWord )(& zztv->tv_usec),   16342                                                     (UWord )(& zztv->tv_usec),
16343                                                     (SizeT )sizeof(zztv->tv_usec));   16343                                                     (SizeT )sizeof(zztv->tv_usec));
16344           } else {   16344           } else {
16345     16345  
16346           }   16346           }
16347           break;   16347           break;
16348         }   16348         }
16349         break;   16349         break;
16350       }   16350       }
16351     } else {   16351     } else {
16352     16352  
16353     }   16353     }
16354     if (arrghs->arg2 != 0UL) {   16354     if (arrghs->arg2 != 0UL) {
16355       while (1) {   16355       while (1) {
16356         if (vgPlain_tdict.track_post_mem_write) {   16356         if (vgPlain_tdict.track_post_mem_write) {
16357           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   16357           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
16358                                                   arrghs->arg2,   16358                                                   arrghs->arg2,
16359                                                   (SizeT )sizeof(struct vki_timezone ));   16359                                                   (SizeT )sizeof(struct vki_timezone ));
16360         } else {   16360         } else {
16361     16361  
16362         }   16362         }
16363         break;   16363         break;
16364       }   16364       }
16365     } else {   16365     } else {
16366     16366  
16367     }   16367     }
16368   } else {   16368   } else {
16369     16369  
16370   }   16370   }
16371   return;   16371   return;
16372 }   16372 }
16373 }   16373 }
16374 void vgSysWrap_generic_sys_settimeofday_before(ThreadId tid ,   16374 void vgSysWrap_generic_sys_settimeofday_before(ThreadId tid ,
16375                                                SyscallArgLayout *layout ,   16375                                                SyscallArgLayout *layout ,
16376                                                SyscallArgs *arrghs ,   16376                                                SyscallArgs *arrghs ,
16377                                                SyscallStatus *status ,   16377                                                SyscallStatus *status ,
16378                                                UWord *flags )   16378                                                UWord *flags )
16379 {   16379 {
16380   Int here ;   16380   Int here ;
16381   long tmp ;   16381   long tmp ;
16382   long tmp___0 ;   16382   long tmp___0 ;
16383   Int here___0 ;   16383   Int here___0 ;
16384   long tmp___1 ;   16384   long tmp___1 ;
16385   long tmp___2 ;   16385   long tmp___2 ;
16386   struct vki_timeval *zztv ;   16386   struct vki_timeval *zztv ;
16387     16387  
16388   {   16388   {
16389   if (vgPlain_clo_trace_syscalls) {   16389   if (vgPlain_clo_trace_syscalls) {
16390     vgPlain_printf("sys_settimeofday ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);   16390     vgPlain_printf("sys_settimeofday ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);
16391   } else {   16391   } else {
16392     16392  
16393   }   16393   }
16394   if (vgPlain_tdict.track_pre_reg_read) {   16394   if (vgPlain_tdict.track_pre_reg_read) {
16395     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16395     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16396                                           (Char *)"(syscallno)",   16396                                           (Char *)"(syscallno)",
16397                                           (PtrdiffT )layout->o_sysno,   16397                                           (PtrdiffT )layout->o_sysno,
16398                                           (SizeT )sizeof(UWord ));   16398                                           (SizeT )sizeof(UWord ));
16399     while (1) {   16399     while (1) {
16400       here = layout->o_arg1;   16400       here = layout->o_arg1;
16401       tmp = __builtin_expect((long )(! (! (sizeof(struct timeval *) <= sizeof(UWord )))),   16401       tmp = __builtin_expect((long )(! (! (sizeof(struct timeval *) <= sizeof(UWord )))),
16402                              1L);   16402                              1L);
16403       if (tmp) {   16403       if (tmp) {
16404     16404  
16405       } else {   16405       } else {
16406         vgPlain_assert_fail((Bool )1,   16406         vgPlain_assert_fail((Bool )1,
16407                             (Char const   *)"sizeof(struct timeval *) <= sizeof(UWord)",   16407                             (Char const   *)"sizeof(struct timeval *) <= sizeof(UWord)",
16408                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,   16408                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,
16409                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",   16409                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",
16410                             "");   16410                             "");
16411       }   16411       }
16412       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   16412       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
16413       if (tmp___0) {   16413       if (tmp___0) {
16414     16414  
16415       } else {   16415       } else {
16416         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16416         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16417                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,   16417                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,
16418                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",   16418                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",
16419                             "");   16419                             "");
16420       }   16420       }
16421       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16421       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16422                                             (Char *)"settimeofday(tv)",   16422                                             (Char *)"settimeofday(tv)",
16423                                             (PtrdiffT )here,   16423                                             (PtrdiffT )here,
16424                                             (SizeT )sizeof(struct timeval *));   16424                                             (SizeT )sizeof(struct timeval *));
16425       break;   16425       break;
16426     }   16426     }
16427     while (1) {   16427     while (1) {
16428       here___0 = layout->o_arg2;   16428       here___0 = layout->o_arg2;
16429       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct timezone *) <= sizeof(UWord )))),   16429       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct timezone *) <= sizeof(UWord )))),
16430                                  1L);   16430                                  1L);
16431       if (tmp___1) {   16431       if (tmp___1) {
16432     16432  
16433       } else {   16433       } else {
16434         vgPlain_assert_fail((Bool )1,   16434         vgPlain_assert_fail((Bool )1,
16435                             (Char const   *)"sizeof(struct timezone *) <= sizeof(UWord)",   16435                             (Char const   *)"sizeof(struct timezone *) <= sizeof(UWord)",
16436                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,   16436                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,
16437                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",   16437                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",
16438                             "");   16438                             "");
16439       }   16439       }
16440       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   16440       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
16441       if (tmp___2) {   16441       if (tmp___2) {
16442     16442  
16443       } else {   16443       } else {
16444         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16444         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16445                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,   16445                             (Char const   *)"m_syswrap/syswrap-generic.c", 3282,
16446                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",   16446                             (Char const   *)"vgSysWrap_generic_sys_settimeofday_before",
16447                             "");   16447                             "");
16448       }   16448       }
16449       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16449       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16450                                             (Char *)"settimeofday(tz)",   16450                                             (Char *)"settimeofday(tz)",
16451                                             (PtrdiffT )here___0,   16451                                             (PtrdiffT )here___0,
16452                                             (SizeT )sizeof(struct timezone *));   16452                                             (SizeT )sizeof(struct timezone *));
16453       break;   16453       break;
16454     }   16454     }
16455   } else {   16455   } else {
16456     16456  
16457   }   16457   }
16458   if (arrghs->arg1 != 0UL) {   16458   if (arrghs->arg1 != 0UL) {
16459     while (1) {   16459     while (1) {
16460       zztv = (struct vki_timeval *)arrghs->arg1;   16460       zztv = (struct vki_timeval *)arrghs->arg1;
16461       while (1) {   16461       while (1) {
16462         if (vgPlain_tdict.track_pre_mem_read) {   16462         if (vgPlain_tdict.track_pre_mem_read) {
16463           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   16463           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
16464                                                 (Char *)"settimeofday(tv)",   16464                                                 (Char *)"settimeofday(tv)",
16465                                                 (UWord )(& zztv->tv_sec),   16465                                                 (UWord )(& zztv->tv_sec),
16466                                                 (SizeT )sizeof(zztv->tv_sec));   16466                                                 (SizeT )sizeof(zztv->tv_sec));
16467         } else {   16467         } else {
16468     16468  
16469         }   16469         }
16470         break;   16470         break;
16471       }   16471       }
16472       while (1) {   16472       while (1) {
16473         if (vgPlain_tdict.track_pre_mem_read) {   16473         if (vgPlain_tdict.track_pre_mem_read) {
16474           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   16474           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
16475                                                 (Char *)"settimeofday(tv)",   16475                                                 (Char *)"settimeofday(tv)",
16476                                                 (UWord )(& zztv->tv_usec),   16476                                                 (UWord )(& zztv->tv_usec),
16477                                                 (SizeT )sizeof(zztv->tv_usec));   16477                                                 (SizeT )sizeof(zztv->tv_usec));
16478         } else {   16478         } else {
16479     16479  
16480         }   16480         }
16481         break;   16481         break;
16482       }   16482       }
16483       break;   16483       break;
16484     }   16484     }
16485   } else {   16485   } else {
16486     16486  
16487   }   16487   }
16488   if (arrghs->arg2 != 0UL) {   16488   if (arrghs->arg2 != 0UL) {
16489     while (1) {   16489     while (1) {
16490       if (vgPlain_tdict.track_pre_mem_read) {   16490       if (vgPlain_tdict.track_pre_mem_read) {
16491         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   16491         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
16492                                               (Char *)"settimeofday(tz)",   16492                                               (Char *)"settimeofday(tz)",
16493                                               arrghs->arg2,   16493                                               arrghs->arg2,
16494                                               (SizeT )sizeof(struct vki_timezone ));   16494                                               (SizeT )sizeof(struct vki_timezone ));
16495       } else {   16495       } else {
16496     16496  
16497       }   16497       }
16498       break;   16498       break;
16499     }   16499     }
16500   } else {   16500   } else {
16501     16501  
16502   }   16502   }
16503   return;   16503   return;
16504 }   16504 }
16505 }   16505 }
16506 void vgSysWrap_generic_sys_getuid_before(ThreadId tid ,   16506 void vgSysWrap_generic_sys_getuid_before(ThreadId tid ,
16507                                          SyscallArgLayout *layout ,   16507                                          SyscallArgLayout *layout ,
16508                                          SyscallArgs *arrghs ,   16508                                          SyscallArgs *arrghs ,
16509                                          SyscallStatus *status , UWord *flags )   16509                                          SyscallStatus *status , UWord *flags )
16510 {   16510 {
16511     16511  
16512     16512  
16513   {   16513   {
16514   if (vgPlain_clo_trace_syscalls) {   16514   if (vgPlain_clo_trace_syscalls) {
16515     vgPlain_printf("sys_getuid ( )");   16515     vgPlain_printf("sys_getuid ( )");
16516   } else {   16516   } else {
16517     16517  
16518   }   16518   }
16519   if (vgPlain_tdict.track_pre_reg_read) {   16519   if (vgPlain_tdict.track_pre_reg_read) {
16520     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16520     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16521                                           (Char *)"(syscallno)",   16521                                           (Char *)"(syscallno)",
16522                                           (PtrdiffT )layout->o_sysno,   16522                                           (PtrdiffT )layout->o_sysno,
16523                                           (SizeT )sizeof(UWord ));   16523                                           (SizeT )sizeof(UWord ));
16524   } else {   16524   } else {
16525     16525  
16526   }   16526   }
16527   return;   16527   return;
16528 }   16528 }
16529 }   16529 }
16530 void vgModuleLocal_PRE_unknown_ioctl(ThreadId tid , UWord request , UWord arg ) ;   16530 void vgModuleLocal_PRE_unknown_ioctl(ThreadId tid , UWord request , UWord arg ) ;
16531 static Int moans  =    3;   16531 static Int moans  =    3;
16532 void vgModuleLocal_PRE_unknown_ioctl(ThreadId tid , UWord request , UWord arg )   16532 void vgModuleLocal_PRE_unknown_ioctl(ThreadId tid , UWord request , UWord arg )
16533 {   16533 {
16534   UInt dir ;   16534   UInt dir ;
16535   UInt size ;   16535   UInt size ;
16536   Char *tmp ;   16536   Char *tmp ;
16537     16537  
16538   {   16538   {
16539   dir = (UInt )((request >> 30) & (unsigned long )((1 << 2) - 1));   16539   dir = (UInt )((request >> 30) & (unsigned long )((1 << 2) - 1));
16540   size = (UInt )((request >> 16) & (unsigned long )((1 << 14) - 1));   16540   size = (UInt )((request >> 16) & (unsigned long )((1 << 14) - 1));
16541   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   16541   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
16542                        (Char *)"lax-ioctls");   16542                        (Char *)"lax-ioctls");
16543   if ((unsigned int )tmp != (unsigned int )((void *)0)) {   16543   if ((unsigned int )tmp != (unsigned int )((void *)0)) {
16544     16544  
16545   } else   16545   } else
16546   if (dir == 0U) {   16546   if (dir == 0U) {
16547     if (moans > 0) {   16547     if (moans > 0) {
16548       if (! vgPlain_clo_xml) {   16548       if (! vgPlain_clo_xml) {
16549         moans --;   16549         moans --;
16550         vgPlain_umsg("Warning: noted but unhandled ioctl 0x%lx with no size/direction hints\n",   16550         vgPlain_umsg("Warning: noted but unhandled ioctl 0x%lx with no size/direction hints\n",
16551                      request);   16551                      request);
16552         vgPlain_umsg("   This could cause spurious value errors to appear.\n");   16552         vgPlain_umsg("   This could cause spurious value errors to appear.\n");
16553         vgPlain_umsg("   See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.\n");   16553         vgPlain_umsg("   See README_MISSING_SYSCALL_OR_IOCTL for guidance on writing a proper wrapper.\n");
16554       } else {   16554       } else {
16555     16555  
16556       }   16556       }
16557     } else {   16557     } else {
16558     16558  
16559     }   16559     }
16560   } else {   16560   } else {
16561     if (dir & 1U) {   16561     if (dir & 1U) {
16562       if (size > 0U) {   16562       if (size > 0U) {
16563         while (1) {   16563         while (1) {
16564           if (vgPlain_tdict.track_pre_mem_read) {   16564           if (vgPlain_tdict.track_pre_mem_read) {
16565             (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   16565             (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
16566                                                   (Char *)"ioctl(generic)", arg,   16566                                                   (Char *)"ioctl(generic)", arg,
16567                                                   (SizeT )size);   16567                                                   (SizeT )size);
16568           } else {   16568           } else {
16569     16569  
16570           }   16570           }
16571           break;   16571           break;
16572         }   16572         }
16573       } else {   16573       } else {
16574     16574  
16575       }   16575       }
16576     } else {   16576     } else {
16577     16577  
16578     }   16578     }
16579     if (dir & 2U) {   16579     if (dir & 2U) {
16580       if (size > 0U) {   16580       if (size > 0U) {
16581         while (1) {   16581         while (1) {
16582           if (vgPlain_tdict.track_pre_mem_write) {   16582           if (vgPlain_tdict.track_pre_mem_write) {
16583             (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   16583             (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
16584                                                    (Char *)"ioctl(generic)",   16584                                                    (Char *)"ioctl(generic)",
16585                                                    arg, (SizeT )size);   16585                                                    arg, (SizeT )size);
16586           } else {   16586           } else {
16587     16587  
16588           }   16588           }
16589           break;   16589           break;
16590         }   16590         }
16591       } else {   16591       } else {
16592     16592  
16593       }   16593       }
16594     } else {   16594     } else {
16595     16595  
16596     }   16596     }
16597   }   16597   }
16598   return;   16598   return;
16599 }   16599 }
16600 }   16600 }
16601 void vgModuleLocal_POST_unknown_ioctl(ThreadId tid , UInt res , UWord request ,   16601 void vgModuleLocal_POST_unknown_ioctl(ThreadId tid , UInt res , UWord request ,
16602                                       UWord arg )   16602                                       UWord arg )
16603 {   16603 {
16604   UInt dir ;   16604   UInt dir ;
16605   UInt size ;   16605   UInt size ;
16606     16606  
16607   {   16607   {
16608   dir = (UInt )((request >> 30) & (unsigned long )((1 << 2) - 1));   16608   dir = (UInt )((request >> 30) & (unsigned long )((1 << 2) - 1));
16609   size = (UInt )((request >> 16) & (unsigned long )((1 << 14) - 1));   16609   size = (UInt )((request >> 16) & (unsigned long )((1 << 14) - 1));
16610   if (size > 0U) {   16610   if (size > 0U) {
16611     if (dir & 2U) {   16611     if (dir & 2U) {
16612       if (res == 0U) {   16612       if (res == 0U) {
16613         if (arg != (Addr )((void *)0)) {   16613         if (arg != (Addr )((void *)0)) {
16614           while (1) {   16614           while (1) {
16615             if (vgPlain_tdict.track_post_mem_write) {   16615             if (vgPlain_tdict.track_post_mem_write) {
16616               (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg,   16616               (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arg,
16617                                                       (SizeT )size);   16617                                                       (SizeT )size);
16618             } else {   16618             } else {
16619     16619  
16620             }   16620             }
16621             break;   16621             break;
16622           }   16622           }
16623         } else {   16623         } else {
16624     16624  
16625         }   16625         }
16626       } else {   16626       } else {
16627     16627  
16628       }   16628       }
16629     } else {   16629     } else {
16630     16630  
16631     }   16631     }
16632   } else {   16632   } else {
16633     16633  
16634   }   16634   }
16635   return;   16635   return;
16636 }   16636 }
16637 }   16637 }
16638 Bool vgModuleLocal_do_sigkill(Int pid , Int tgid )   16638 Bool vgModuleLocal_do_sigkill(Int pid , Int tgid )
16639 {   16639 {
16640   ThreadState *tst ;   16640   ThreadState *tst ;
16641   ThreadId tid ;   16641   ThreadId tid ;
16642   Bool tmp ;   16642   Bool tmp ;
16643   Bool tmp___0 ;   16643   Bool tmp___0 ;
16644     16644  
16645   {   16645   {
16646   if (pid <= 0) {   16646   if (pid <= 0) {
16647     return ((Bool )0);   16647     return ((Bool )0);
16648   } else {   16648   } else {
16649     16649  
16650   }   16650   }
16651   tid = vgPlain_lwpid_to_vgtid(pid);   16651   tid = vgPlain_lwpid_to_vgtid(pid);
16652   if (tid == 0U) {   16652   if (tid == 0U) {
16653     return ((Bool )0);   16653     return ((Bool )0);
16654   } else {   16654   } else {
16655     16655  
16656   }   16656   }
16657   tst = vgPlain_get_ThreadState(tid);   16657   tst = vgPlain_get_ThreadState(tid);
16658   if ((unsigned int )tst == (unsigned int )((void *)0)) {   16658   if ((unsigned int )tst == (unsigned int )((void *)0)) {
16659     return ((Bool )0);   16659     return ((Bool )0);
16660   } else   16660   } else
16661   if ((unsigned int )tst->status == 0U) {   16661   if ((unsigned int )tst->status == 0U) {
16662     return ((Bool )0);   16662     return ((Bool )0);
16663   } else {   16663   } else {
16664     16664  
16665   }   16665   }
16666   if (tgid != -1) {   16666   if (tgid != -1) {
16667     if (tst->os_state.threadgroup != tgid) {   16667     if (tst->os_state.threadgroup != tgid) {
16668       return ((Bool )0);   16668       return ((Bool )0);
16669     } else {   16669     } else {
16670     16670  
16671     }   16671     }
16672   } else {   16672   } else {
16673     16673  
16674   }   16674   }
16675   tmp___0 = vgPlain_is_exiting(tid);   16675   tmp___0 = vgPlain_is_exiting(tid);
16676   if (tmp___0) {   16676   if (tmp___0) {
16677     16677  
16678   } else {   16678   } else {
16679     if (vgPlain_clo_trace_signals) {   16679     if (vgPlain_clo_trace_signals) {
16680       vgPlain_message((VgMsgKind )2, "Thread %d being killed with SIGKILL\n",   16680       vgPlain_message((VgMsgKind )2, "Thread %d being killed with SIGKILL\n",
16681                       tst->tid);   16681                       tst->tid);
16682     } else {   16682     } else {
16683     16683  
16684     }   16684     }
16685     tst->exitreason = (VgSchedReturnCode )3;   16685     tst->exitreason = (VgSchedReturnCode )3;
16686     tst->os_state.fatalsig = 9;   16686     tst->os_state.fatalsig = 9;
16687     tmp = vgPlain_is_running_thread(tid);   16687     tmp = vgPlain_is_running_thread(tid);
16688     if (tmp) {   16688     if (tmp) {
16689     16689  
16690     } else {   16690     } else {
16691       vgPlain_get_thread_out_of_syscall(tid);   16691       vgPlain_get_thread_out_of_syscall(tid);
16692     }   16692     }
16693   }   16693   }
16694   return ((Bool )1);   16694   return ((Bool )1);
16695 }   16695 }
16696 }   16696 }
16697 void vgSysWrap_generic_sys_kill_before(ThreadId tid , SyscallArgLayout *layout ,   16697 void vgSysWrap_generic_sys_kill_before(ThreadId tid , SyscallArgLayout *layout ,
16698                                        SyscallArgs *arrghs ,   16698                                        SyscallArgs *arrghs ,
16699                                        SyscallStatus *status , UWord *flags )   16699                                        SyscallStatus *status , UWord *flags )
16700 {   16700 {
16701   Int here ;   16701   Int here ;
16702   long tmp ;   16702   long tmp ;
16703   long tmp___0 ;   16703   long tmp___0 ;
16704   Int here___0 ;   16704   Int here___0 ;
16705   long tmp___1 ;   16705   long tmp___1 ;
16706   long tmp___2 ;   16706   long tmp___2 ;
16707   Word wzz ;   16707   Word wzz ;
16708   int tmp___3 ;   16708   int tmp___3 ;
16709   long tmp___4 ;   16709   long tmp___4 ;
16710   Bool tmp___5 ;   16710   Bool tmp___5 ;
16711   Bool tmp___6 ;   16711   Bool tmp___6 ;
16712     16712  
16713   {   16713   {
16714   if (vgPlain_clo_trace_syscalls) {   16714   if (vgPlain_clo_trace_syscalls) {
16715     vgPlain_printf("sys_kill ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   16715     vgPlain_printf("sys_kill ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
16716   } else {   16716   } else {
16717     16717  
16718   }   16718   }
16719   if (vgPlain_tdict.track_pre_reg_read) {   16719   if (vgPlain_tdict.track_pre_reg_read) {
16720     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16720     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16721                                           (Char *)"(syscallno)",   16721                                           (Char *)"(syscallno)",
16722                                           (PtrdiffT )layout->o_sysno,   16722                                           (PtrdiffT )layout->o_sysno,
16723                                           (SizeT )sizeof(UWord ));   16723                                           (SizeT )sizeof(UWord ));
16724     while (1) {   16724     while (1) {
16725       here = layout->o_arg1;   16725       here = layout->o_arg1;
16726       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   16726       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
16727       if (tmp) {   16727       if (tmp) {
16728     16728  
16729       } else {   16729       } else {
16730         vgPlain_assert_fail((Bool )1,   16730         vgPlain_assert_fail((Bool )1,
16731                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   16731                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
16732                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,   16732                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,
16733                             (Char const   *)"vgSysWrap_generic_sys_kill_before",   16733                             (Char const   *)"vgSysWrap_generic_sys_kill_before",
16734                             "");   16734                             "");
16735       }   16735       }
16736       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   16736       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
16737       if (tmp___0) {   16737       if (tmp___0) {
16738     16738  
16739       } else {   16739       } else {
16740         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16740         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16741                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,   16741                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,
16742                             (Char const   *)"vgSysWrap_generic_sys_kill_before",   16742                             (Char const   *)"vgSysWrap_generic_sys_kill_before",
16743                             "");   16743                             "");
16744       }   16744       }
16745       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16745       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16746                                             (Char *)"kill(pid)",   16746                                             (Char *)"kill(pid)",
16747                                             (PtrdiffT )here,   16747                                             (PtrdiffT )here,
16748                                             (SizeT )sizeof(int ));   16748                                             (SizeT )sizeof(int ));
16749       break;   16749       break;
16750     }   16750     }
16751     while (1) {   16751     while (1) {
16752       here___0 = layout->o_arg2;   16752       here___0 = layout->o_arg2;
16753       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   16753       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
16754                                  1L);   16754                                  1L);
16755       if (tmp___1) {   16755       if (tmp___1) {
16756     16756  
16757       } else {   16757       } else {
16758         vgPlain_assert_fail((Bool )1,   16758         vgPlain_assert_fail((Bool )1,
16759                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   16759                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
16760                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,   16760                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,
16761                             (Char const   *)"vgSysWrap_generic_sys_kill_before",   16761                             (Char const   *)"vgSysWrap_generic_sys_kill_before",
16762                             "");   16762                             "");
16763       }   16763       }
16764       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   16764       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
16765       if (tmp___2) {   16765       if (tmp___2) {
16766     16766  
16767       } else {   16767       } else {
16768         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16768         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16769                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,   16769                             (Char const   *)"m_syswrap/syswrap-generic.c", 3417,
16770                             (Char const   *)"vgSysWrap_generic_sys_kill_before",   16770                             (Char const   *)"vgSysWrap_generic_sys_kill_before",
16771                             "");   16771                             "");
16772       }   16772       }
16773       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16773       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16774                                             (Char *)"kill(sig)",   16774                                             (Char *)"kill(sig)",
16775                                             (PtrdiffT )here___0,   16775                                             (PtrdiffT )here___0,
16776                                             (SizeT )sizeof(int ));   16776                                             (SizeT )sizeof(int ));
16777       break;   16777       break;
16778     }   16778     }
16779   } else {   16779   } else {
16780     16780  
16781   }   16781   }
16782   tmp___5 = vgModuleLocal_client_signal_OK((Int )arrghs->arg2);   16782   tmp___5 = vgModuleLocal_client_signal_OK((Int )arrghs->arg2);
16783   if (tmp___5) {   16783   if (tmp___5) {
16784     16784  
16785   } else {   16785   } else {
16786     while (1) {   16786     while (1) {
16787       wzz = (Word )22;   16787       wzz = (Word )22;
16788       if (wzz >= 0L) {   16788       if (wzz >= 0L) {
16789         if (wzz < 10000L) {   16789         if (wzz < 10000L) {
16790           tmp___3 = 1;   16790           tmp___3 = 1;
16791         } else {   16791         } else {
16792           tmp___3 = 0;   16792           tmp___3 = 0;
16793         }   16793         }
16794       } else {   16794       } else {
16795         tmp___3 = 0;   16795         tmp___3 = 0;
16796       }   16796       }
16797       tmp___4 = __builtin_expect((long )tmp___3, 1L);   16797       tmp___4 = __builtin_expect((long )tmp___3, 1L);
16798       if (tmp___4) {   16798       if (tmp___4) {
16799     16799  
16800       } else {   16800       } else {
16801         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   16801         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
16802                             (Char const   *)"m_syswrap/syswrap-generic.c", 3419,   16802                             (Char const   *)"m_syswrap/syswrap-generic.c", 3419,
16803                             (Char const   *)"vgSysWrap_generic_sys_kill_before",   16803                             (Char const   *)"vgSysWrap_generic_sys_kill_before",
16804                             "");   16804                             "");
16805       }   16805       }
16806       status->what = (enum __anonenum_what_133 )1;   16806       status->what = (enum __anonenum_what_133 )1;
16807       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   16807       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
16808       break;   16808       break;
16809     }   16809     }
16810     return;   16810     return;
16811   }   16811   }
16812   if (arrghs->arg2 == 9UL) {   16812   if (arrghs->arg2 == 9UL) {
16813     tmp___6 = vgModuleLocal_do_sigkill((Int )arrghs->arg1, -1);   16813     tmp___6 = vgModuleLocal_do_sigkill((Int )arrghs->arg1, -1);
16814     if (tmp___6) {   16814     if (tmp___6) {
16815       while (1) {   16815       while (1) {
16816         status->what = (enum __anonenum_what_133 )1;   16816         status->what = (enum __anonenum_what_133 )1;
16817         status->sres = vgPlain_mk_SysRes_Success((UWord )0);   16817         status->sres = vgPlain_mk_SysRes_Success((UWord )0);
16818         break;   16818         break;
16819       }   16819       }
16820     } else {   16820     } else {
16821       goto _L;   16821       goto _L;
16822     }   16822     }
16823   } else {   16823   } else {
16824     _L: /* CIL Label */   16824     _L: /* CIL Label */
16825     while (1) {   16825     while (1) {
16826       status->what = (enum __anonenum_what_133 )1;   16826       status->what = (enum __anonenum_what_133 )1;
16827       status->sres = vgPlain_do_syscall((UWord )arrghs->sysno, arrghs->arg1,   16827       status->sres = vgPlain_do_syscall((UWord )arrghs->sysno, arrghs->arg1,
16828                                         arrghs->arg2, arrghs->arg3, (UWord )0,   16828                                         arrghs->arg2, arrghs->arg3, (UWord )0,
16829                                         (UWord )0, (UWord )0, (UWord )0,   16829                                         (UWord )0, (UWord )0, (UWord )0,
16830                                         (UWord )0);   16830                                         (UWord )0);
16831       break;   16831       break;
16832     }   16832     }
16833   }   16833   }
16834   if (vgPlain_clo_trace_signals) {   16834   if (vgPlain_clo_trace_signals) {
16835     vgPlain_message((VgMsgKind )2, "kill: sent signal %ld to pid %ld\n",   16835     vgPlain_message((VgMsgKind )2, "kill: sent signal %ld to pid %ld\n",
16836                     arrghs->arg2, arrghs->arg1);   16836                     arrghs->arg2, arrghs->arg1);
16837   } else {   16837   } else {
16838     16838  
16839   }   16839   }
16840   *flags |= (unsigned long )(1 << 3);   16840   *flags |= (unsigned long )(1 << 3);
16841   return;   16841   return;
16842 }   16842 }
16843 }   16843 }
16844 void vgSysWrap_generic_sys_link_before(ThreadId tid , SyscallArgLayout *layout ,   16844 void vgSysWrap_generic_sys_link_before(ThreadId tid , SyscallArgLayout *layout ,
16845                                        SyscallArgs *arrghs ,   16845                                        SyscallArgs *arrghs ,
16846                                        SyscallStatus *status , UWord *flags )   16846                                        SyscallStatus *status , UWord *flags )
16847 {   16847 {
16848   Int here ;   16848   Int here ;
16849   long tmp ;   16849   long tmp ;
16850   long tmp___0 ;   16850   long tmp___0 ;
16851   Int here___0 ;   16851   Int here___0 ;
16852   long tmp___1 ;   16852   long tmp___1 ;
16853   long tmp___2 ;   16853   long tmp___2 ;
16854     16854  
16855   {   16855   {
16856   *flags |= (unsigned long )(1 << 1);   16856   *flags |= (unsigned long )(1 << 1);
16857   if (vgPlain_clo_trace_syscalls) {   16857   if (vgPlain_clo_trace_syscalls) {
16858     vgPlain_printf("sys_link ( %#lx(%s), %#lx(%s) )", arrghs->arg1,   16858     vgPlain_printf("sys_link ( %#lx(%s), %#lx(%s) )", arrghs->arg1,
16859                    (char *)arrghs->arg1, arrghs->arg2, (char *)arrghs->arg2);   16859                    (char *)arrghs->arg1, arrghs->arg2, (char *)arrghs->arg2);
16860   } else {   16860   } else {
16861     16861  
16862   }   16862   }
16863   if (vgPlain_tdict.track_pre_reg_read) {   16863   if (vgPlain_tdict.track_pre_reg_read) {
16864     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16864     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16865                                           (Char *)"(syscallno)",   16865                                           (Char *)"(syscallno)",
16866                                           (PtrdiffT )layout->o_sysno,   16866                                           (PtrdiffT )layout->o_sysno,
16867                                           (SizeT )sizeof(UWord ));   16867                                           (SizeT )sizeof(UWord ));
16868     while (1) {   16868     while (1) {
16869       here = layout->o_arg1;   16869       here = layout->o_arg1;
16870       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   16870       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
16871                              1L);   16871                              1L);
16872       if (tmp) {   16872       if (tmp) {
16873     16873  
16874       } else {   16874       } else {
16875         vgPlain_assert_fail((Bool )1,   16875         vgPlain_assert_fail((Bool )1,
16876                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   16876                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
16877                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,   16877                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,
16878                             (Char const   *)"vgSysWrap_generic_sys_link_before",   16878                             (Char const   *)"vgSysWrap_generic_sys_link_before",
16879                             "");   16879                             "");
16880       }   16880       }
16881       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   16881       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
16882       if (tmp___0) {   16882       if (tmp___0) {
16883     16883  
16884       } else {   16884       } else {
16885         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16885         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16886                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,   16886                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,
16887                             (Char const   *)"vgSysWrap_generic_sys_link_before",   16887                             (Char const   *)"vgSysWrap_generic_sys_link_before",
16888                             "");   16888                             "");
16889       }   16889       }
16890       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16890       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16891                                             (Char *)"link(oldpath)",   16891                                             (Char *)"link(oldpath)",
16892                                             (PtrdiffT )here,   16892                                             (PtrdiffT )here,
16893                                             (SizeT )sizeof(char const   *));   16893                                             (SizeT )sizeof(char const   *));
16894       break;   16894       break;
16895     }   16895     }
16896     while (1) {   16896     while (1) {
16897       here___0 = layout->o_arg2;   16897       here___0 = layout->o_arg2;
16898       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   16898       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
16899                                  1L);   16899                                  1L);
16900       if (tmp___1) {   16900       if (tmp___1) {
16901     16901  
16902       } else {   16902       } else {
16903         vgPlain_assert_fail((Bool )1,   16903         vgPlain_assert_fail((Bool )1,
16904                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   16904                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
16905                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,   16905                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,
16906                             (Char const   *)"vgSysWrap_generic_sys_link_before",   16906                             (Char const   *)"vgSysWrap_generic_sys_link_before",
16907                             "");   16907                             "");
16908       }   16908       }
16909       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   16909       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
16910       if (tmp___2) {   16910       if (tmp___2) {
16911     16911  
16912       } else {   16912       } else {
16913         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16913         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16914                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,   16914                             (Char const   *)"m_syswrap/syswrap-generic.c", 3447,
16915                             (Char const   *)"vgSysWrap_generic_sys_link_before",   16915                             (Char const   *)"vgSysWrap_generic_sys_link_before",
16916                             "");   16916                             "");
16917       }   16917       }
16918       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16918       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16919                                             (Char *)"link(newpath)",   16919                                             (Char *)"link(newpath)",
16920                                             (PtrdiffT )here___0,   16920                                             (PtrdiffT )here___0,
16921                                             (SizeT )sizeof(char const   *));   16921                                             (SizeT )sizeof(char const   *));
16922       break;   16922       break;
16923     }   16923     }
16924   } else {   16924   } else {
16925     16925  
16926   }   16926   }
16927   while (1) {   16927   while (1) {
16928     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   16928     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
16929       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   16929       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
16930                                                    (Char *)"link(oldpath)",   16930                                                    (Char *)"link(oldpath)",
16931                                                    arrghs->arg1);   16931                                                    arrghs->arg1);
16932     } else {   16932     } else {
16933     16933  
16934     }   16934     }
16935     break;   16935     break;
16936   }   16936   }
16937   while (1) {   16937   while (1) {
16938     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   16938     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
16939       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   16939       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
16940                                                    (Char *)"link(newpath)",   16940                                                    (Char *)"link(newpath)",
16941                                                    arrghs->arg2);   16941                                                    arrghs->arg2);
16942     } else {   16942     } else {
16943     16943  
16944     }   16944     }
16945     break;   16945     break;
16946   }   16946   }
16947   return;   16947   return;
16948 }   16948 }
16949 }   16949 }
16950 void vgSysWrap_generic_sys_newlstat_before(ThreadId tid ,   16950 void vgSysWrap_generic_sys_newlstat_before(ThreadId tid ,
16951                                            SyscallArgLayout *layout ,   16951                                            SyscallArgLayout *layout ,
16952                                            SyscallArgs *arrghs ,   16952                                            SyscallArgs *arrghs ,
16953                                            SyscallStatus *status , UWord *flags )   16953                                            SyscallStatus *status , UWord *flags )
16954 {   16954 {
16955   Int here ;   16955   Int here ;
16956   long tmp ;   16956   long tmp ;
16957   long tmp___0 ;   16957   long tmp___0 ;
16958   Int here___0 ;   16958   Int here___0 ;
16959   long tmp___1 ;   16959   long tmp___1 ;
16960   long tmp___2 ;   16960   long tmp___2 ;
16961     16961  
16962   {   16962   {
16963   if (vgPlain_clo_trace_syscalls) {   16963   if (vgPlain_clo_trace_syscalls) {
16964     vgPlain_printf("sys_newlstat ( %#lx(%s), %#lx )", arrghs->arg1,   16964     vgPlain_printf("sys_newlstat ( %#lx(%s), %#lx )", arrghs->arg1,
16965                    (char *)arrghs->arg1, arrghs->arg2);   16965                    (char *)arrghs->arg1, arrghs->arg2);
16966   } else {   16966   } else {
16967     16967  
16968   }   16968   }
16969   if (vgPlain_tdict.track_pre_reg_read) {   16969   if (vgPlain_tdict.track_pre_reg_read) {
16970     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16970     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16971                                           (Char *)"(syscallno)",   16971                                           (Char *)"(syscallno)",
16972                                           (PtrdiffT )layout->o_sysno,   16972                                           (PtrdiffT )layout->o_sysno,
16973                                           (SizeT )sizeof(UWord ));   16973                                           (SizeT )sizeof(UWord ));
16974     while (1) {   16974     while (1) {
16975       here = layout->o_arg1;   16975       here = layout->o_arg1;
16976       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   16976       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
16977                              1L);   16977                              1L);
16978       if (tmp) {   16978       if (tmp) {
16979     16979  
16980       } else {   16980       } else {
16981         vgPlain_assert_fail((Bool )1,   16981         vgPlain_assert_fail((Bool )1,
16982                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   16982                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
16983                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,   16983                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,
16984                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",   16984                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",
16985                             "");   16985                             "");
16986       }   16986       }
16987       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   16987       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
16988       if (tmp___0) {   16988       if (tmp___0) {
16989     16989  
16990       } else {   16990       } else {
16991         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   16991         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
16992                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,   16992                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,
16993                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",   16993                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",
16994                             "");   16994                             "");
16995       }   16995       }
16996       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   16996       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
16997                                             (Char *)"lstat(file_name)",   16997                                             (Char *)"lstat(file_name)",
16998                                             (PtrdiffT )here,   16998                                             (PtrdiffT )here,
16999                                             (SizeT )sizeof(char *));   16999                                             (SizeT )sizeof(char *));
17000       break;   17000       break;
17001     }   17001     }
17002     while (1) {   17002     while (1) {
17003       here___0 = layout->o_arg2;   17003       here___0 = layout->o_arg2;
17004       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct stat *) <= sizeof(UWord )))),   17004       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct stat *) <= sizeof(UWord )))),
17005                                  1L);   17005                                  1L);
17006       if (tmp___1) {   17006       if (tmp___1) {
17007     17007  
17008       } else {   17008       } else {
17009         vgPlain_assert_fail((Bool )1,   17009         vgPlain_assert_fail((Bool )1,
17010                             (Char const   *)"sizeof(struct stat *) <= sizeof(UWord)",   17010                             (Char const   *)"sizeof(struct stat *) <= sizeof(UWord)",
17011                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,   17011                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,
17012                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",   17012                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",
17013                             "");   17013                             "");
17014       }   17014       }
17015       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   17015       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
17016       if (tmp___2) {   17016       if (tmp___2) {
17017     17017  
17018       } else {   17018       } else {
17019         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17019         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17020                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,   17020                             (Char const   *)"m_syswrap/syswrap-generic.c", 3455,
17021                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",   17021                             (Char const   *)"vgSysWrap_generic_sys_newlstat_before",
17022                             "");   17022                             "");
17023       }   17023       }
17024       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17024       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17025                                             (Char *)"lstat(buf)",   17025                                             (Char *)"lstat(buf)",
17026                                             (PtrdiffT )here___0,   17026                                             (PtrdiffT )here___0,
17027                                             (SizeT )sizeof(struct stat *));   17027                                             (SizeT )sizeof(struct stat *));
17028       break;   17028       break;
17029     }   17029     }
17030   } else {   17030   } else {
17031     17031  
17032   }   17032   }
17033   while (1) {   17033   while (1) {
17034     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   17034     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
17035       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   17035       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
17036                                                    (Char *)"lstat(file_name)",   17036                                                    (Char *)"lstat(file_name)",
17037                                                    arrghs->arg1);   17037                                                    arrghs->arg1);
17038     } else {   17038     } else {
17039     17039  
17040     }   17040     }
17041     break;   17041     break;
17042   }   17042   }
17043   while (1) {   17043   while (1) {
17044     if (vgPlain_tdict.track_pre_mem_write) {   17044     if (vgPlain_tdict.track_pre_mem_write) {
17045       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   17045       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
17046                                              (Char *)"lstat(buf)", arrghs->arg2,   17046                                              (Char *)"lstat(buf)", arrghs->arg2,
17047                                              (SizeT )sizeof(struct vki_stat ));   17047                                              (SizeT )sizeof(struct vki_stat ));
17048     } else {   17048     } else {
17049     17049  
17050     }   17050     }
17051     break;   17051     break;
17052   }   17052   }
17053   return;   17053   return;
17054 }   17054 }
17055 }   17055 }
17056 void vgSysWrap_generic_sys_newlstat_after(ThreadId tid , SyscallArgs *arrghs ,   17056 void vgSysWrap_generic_sys_newlstat_after(ThreadId tid , SyscallArgs *arrghs ,
17057                                           SyscallStatus *status )   17057                                           SyscallStatus *status )
17058 {   17058 {
17059   Bool tmp ;   17059   Bool tmp ;
17060   int tmp___0 ;   17060   int tmp___0 ;
17061   long tmp___1 ;   17061   long tmp___1 ;
17062     17062  
17063   {   17063   {
17064   if ((unsigned int )status->what == 1U) {   17064   if ((unsigned int )status->what == 1U) {
17065     tmp = sr_isError(status->sres);   17065     tmp = sr_isError(status->sres);
17066     if (tmp) {   17066     if (tmp) {
17067       tmp___0 = 0;   17067       tmp___0 = 0;
17068     } else {   17068     } else {
17069       tmp___0 = 1;   17069       tmp___0 = 1;
17070     }   17070     }
17071   } else {   17071   } else {
17072     tmp___0 = 0;   17072     tmp___0 = 0;
17073   }   17073   }
17074   tmp___1 = __builtin_expect((long )tmp___0, 1L);   17074   tmp___1 = __builtin_expect((long )tmp___0, 1L);
17075   if (tmp___1) {   17075   if (tmp___1) {
17076     17076  
17077   } else {   17077   } else {
17078     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   17078     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
17079                         (Char const   *)"m_syswrap/syswrap-generic.c", 3462,   17079                         (Char const   *)"m_syswrap/syswrap-generic.c", 3462,
17080                         (Char const   *)"vgSysWrap_generic_sys_newlstat_after",   17080                         (Char const   *)"vgSysWrap_generic_sys_newlstat_after",
17081                         "");   17081                         "");
17082   }   17082   }
17083   while (1) {   17083   while (1) {
17084     if (vgPlain_tdict.track_post_mem_write) {   17084     if (vgPlain_tdict.track_post_mem_write) {
17085       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   17085       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
17086                                               (SizeT )sizeof(struct vki_stat ));   17086                                               (SizeT )sizeof(struct vki_stat ));
17087     } else {   17087     } else {
17088     17088  
17089     }   17089     }
17090     break;   17090     break;
17091   }   17091   }
17092   return;   17092   return;
17093 }   17093 }
17094 }   17094 }
17095 void vgSysWrap_generic_sys_mkdir_before(ThreadId tid ,   17095 void vgSysWrap_generic_sys_mkdir_before(ThreadId tid ,
17096                                         SyscallArgLayout *layout ,   17096                                         SyscallArgLayout *layout ,
17097                                         SyscallArgs *arrghs ,   17097                                         SyscallArgs *arrghs ,
17098                                         SyscallStatus *status , UWord *flags )   17098                                         SyscallStatus *status , UWord *flags )
17099 {   17099 {
17100   Int here ;   17100   Int here ;
17101   long tmp ;   17101   long tmp ;
17102   long tmp___0 ;   17102   long tmp___0 ;
17103   Int here___0 ;   17103   Int here___0 ;
17104   long tmp___1 ;   17104   long tmp___1 ;
17105   long tmp___2 ;   17105   long tmp___2 ;
17106     17106  
17107   {   17107   {
17108   *flags |= (unsigned long )(1 << 1);   17108   *flags |= (unsigned long )(1 << 1);
17109   if (vgPlain_clo_trace_syscalls) {   17109   if (vgPlain_clo_trace_syscalls) {
17110     vgPlain_printf("sys_mkdir ( %#lx(%s), %ld )", arrghs->arg1,   17110     vgPlain_printf("sys_mkdir ( %#lx(%s), %ld )", arrghs->arg1,
17111                    (char *)arrghs->arg1, arrghs->arg2);   17111                    (char *)arrghs->arg1, arrghs->arg2);
17112   } else {   17112   } else {
17113     17113  
17114   }   17114   }
17115   if (vgPlain_tdict.track_pre_reg_read) {   17115   if (vgPlain_tdict.track_pre_reg_read) {
17116     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17116     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17117                                           (Char *)"(syscallno)",   17117                                           (Char *)"(syscallno)",
17118                                           (PtrdiffT )layout->o_sysno,   17118                                           (PtrdiffT )layout->o_sysno,
17119                                           (SizeT )sizeof(UWord ));   17119                                           (SizeT )sizeof(UWord ));
17120     while (1) {   17120     while (1) {
17121       here = layout->o_arg1;   17121       here = layout->o_arg1;
17122       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   17122       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
17123                              1L);   17123                              1L);
17124       if (tmp) {   17124       if (tmp) {
17125     17125  
17126       } else {   17126       } else {
17127         vgPlain_assert_fail((Bool )1,   17127         vgPlain_assert_fail((Bool )1,
17128                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   17128                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
17129                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,   17129                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,
17130                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",   17130                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",
17131                             "");   17131                             "");
17132       }   17132       }
17133       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   17133       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
17134       if (tmp___0) {   17134       if (tmp___0) {
17135     17135  
17136       } else {   17136       } else {
17137         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17137         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17138                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,   17138                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,
17139                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",   17139                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",
17140                             "");   17140                             "");
17141       }   17141       }
17142       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17142       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17143                                             (Char *)"mkdir(pathname)",   17143                                             (Char *)"mkdir(pathname)",
17144                                             (PtrdiffT )here,   17144                                             (PtrdiffT )here,
17145                                             (SizeT )sizeof(char const   *));   17145                                             (SizeT )sizeof(char const   *));
17146       break;   17146       break;
17147     }   17147     }
17148     while (1) {   17148     while (1) {
17149       here___0 = layout->o_arg2;   17149       here___0 = layout->o_arg2;
17150       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   17150       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
17151                                  1L);   17151                                  1L);
17152       if (tmp___1) {   17152       if (tmp___1) {
17153     17153  
17154       } else {   17154       } else {
17155         vgPlain_assert_fail((Bool )1,   17155         vgPlain_assert_fail((Bool )1,
17156                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   17156                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
17157                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,   17157                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,
17158                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",   17158                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",
17159                             "");   17159                             "");
17160       }   17160       }
17161       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   17161       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
17162       if (tmp___2) {   17162       if (tmp___2) {
17163     17163  
17164       } else {   17164       } else {
17165         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17165         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17166                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,   17166                             (Char const   *)"m_syswrap/syswrap-generic.c", 3470,
17167                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",   17167                             (Char const   *)"vgSysWrap_generic_sys_mkdir_before",
17168                             "");   17168                             "");
17169       }   17169       }
17170       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17170       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17171                                             (Char *)"mkdir(mode)",   17171                                             (Char *)"mkdir(mode)",
17172                                             (PtrdiffT )here___0,   17172                                             (PtrdiffT )here___0,
17173                                             (SizeT )sizeof(int ));   17173                                             (SizeT )sizeof(int ));
17174       break;   17174       break;
17175     }   17175     }
17176   } else {   17176   } else {
17177     17177  
17178   }   17178   }
17179   while (1) {   17179   while (1) {
17180     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   17180     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
17181       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   17181       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
17182                                                    (Char *)"mkdir(pathname)",   17182                                                    (Char *)"mkdir(pathname)",
17183                                                    arrghs->arg1);   17183                                                    arrghs->arg1);
17184     } else {   17184     } else {
17185     17185  
17186     }   17186     }
17187     break;   17187     break;
17188   }   17188   }
17189   return;   17189   return;
17190 }   17190 }
17191 }   17191 }
17192 void vgSysWrap_generic_sys_mprotect_before(ThreadId tid ,   17192 void vgSysWrap_generic_sys_mprotect_before(ThreadId tid ,
17193                                            SyscallArgLayout *layout ,   17193                                            SyscallArgLayout *layout ,
17194                                            SyscallArgs *arrghs ,   17194                                            SyscallArgs *arrghs ,
17195                                            SyscallStatus *status , UWord *flags )   17195                                            SyscallStatus *status , UWord *flags )
17196 {   17196 {
17197   Int here ;   17197   Int here ;
17198   long tmp ;   17198   long tmp ;
17199   long tmp___0 ;   17199   long tmp___0 ;
17200   Int here___0 ;   17200   Int here___0 ;
17201   long tmp___1 ;   17201   long tmp___1 ;
17202   long tmp___2 ;   17202   long tmp___2 ;
17203   Int here___1 ;   17203   Int here___1 ;
17204   long tmp___3 ;   17204   long tmp___3 ;
17205   long tmp___4 ;   17205   long tmp___4 ;
17206   Word wzz ;   17206   Word wzz ;
17207   int tmp___5 ;   17207   int tmp___5 ;
17208   long tmp___6 ;   17208   long tmp___6 ;
17209   UInt grows ;   17209   UInt grows ;
17210   NSegment const   *aseg ;   17210   NSegment const   *aseg ;
17211   NSegment const   *tmp___7 ;   17211   NSegment const   *tmp___7 ;
17212   NSegment const   *rseg ;   17212   NSegment const   *rseg ;
17213   long tmp___8 ;   17213   long tmp___8 ;
17214   Addr end ;   17214   Addr end ;
17215   Word wzz___0 ;   17215   Word wzz___0 ;
17216   int tmp___9 ;   17216   int tmp___9 ;
17217   long tmp___10 ;   17217   long tmp___10 ;
17218   Word wzz___1 ;   17218   Word wzz___1 ;
17219   int tmp___11 ;   17219   int tmp___11 ;
17220   long tmp___12 ;   17220   long tmp___12 ;
17221   Word wzz___2 ;   17221   Word wzz___2 ;
17222   int tmp___13 ;   17222   int tmp___13 ;
17223   long tmp___14 ;   17223   long tmp___14 ;
17224   Bool tmp___15 ;   17224   Bool tmp___15 ;
17225     17225  
17226   {   17226   {
17227   if (vgPlain_clo_trace_syscalls) {   17227   if (vgPlain_clo_trace_syscalls) {
17228     vgPlain_printf("sys_mprotect ( %#lx, %llu, %ld )", arrghs->arg1,   17228     vgPlain_printf("sys_mprotect ( %#lx, %llu, %ld )", arrghs->arg1,
17229                    (ULong )arrghs->arg2, arrghs->arg3);   17229                    (ULong )arrghs->arg2, arrghs->arg3);
17230   } else {   17230   } else {
17231     17231  
17232   }   17232   }
17233   if (vgPlain_tdict.track_pre_reg_read) {   17233   if (vgPlain_tdict.track_pre_reg_read) {
17234     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17234     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17235                                           (Char *)"(syscallno)",   17235                                           (Char *)"(syscallno)",
17236                                           (PtrdiffT )layout->o_sysno,   17236                                           (PtrdiffT )layout->o_sysno,
17237                                           (SizeT )sizeof(UWord ));   17237                                           (SizeT )sizeof(UWord ));
17238     while (1) {   17238     while (1) {
17239       here = layout->o_arg1;   17239       here = layout->o_arg1;
17240       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   17240       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
17241                              1L);   17241                              1L);
17242       if (tmp) {   17242       if (tmp) {
17243     17243  
17244       } else {   17244       } else {
17245         vgPlain_assert_fail((Bool )1,   17245         vgPlain_assert_fail((Bool )1,
17246                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   17246                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
17247                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,   17247                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,
17248                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17248                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17249                             "");   17249                             "");
17250       }   17250       }
17251       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   17251       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
17252       if (tmp___0) {   17252       if (tmp___0) {
17253     17253  
17254       } else {   17254       } else {
17255         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17255         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17256                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,   17256                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,
17257                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17257                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17258                             "");   17258                             "");
17259       }   17259       }
17260       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17260       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17261                                             (Char *)"mprotect(addr)",   17261                                             (Char *)"mprotect(addr)",
17262                                             (PtrdiffT )here,   17262                                             (PtrdiffT )here,
17263                                             (SizeT )sizeof(unsigned long ));   17263                                             (SizeT )sizeof(unsigned long ));
17264       break;   17264       break;
17265     }   17265     }
17266     while (1) {   17266     while (1) {
17267       here___0 = layout->o_arg2;   17267       here___0 = layout->o_arg2;
17268       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   17268       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
17269                                  1L);   17269                                  1L);
17270       if (tmp___1) {   17270       if (tmp___1) {
17271     17271  
17272       } else {   17272       } else {
17273         vgPlain_assert_fail((Bool )1,   17273         vgPlain_assert_fail((Bool )1,
17274                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   17274                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
17275                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,   17275                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,
17276                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17276                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17277                             "");   17277                             "");
17278       }   17278       }
17279       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   17279       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
17280       if (tmp___2) {   17280       if (tmp___2) {
17281     17281  
17282       } else {   17282       } else {
17283         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17283         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17284                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,   17284                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,
17285                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17285                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17286                             "");   17286                             "");
17287       }   17287       }
17288       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17288       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17289                                             (Char *)"mprotect(len)",   17289                                             (Char *)"mprotect(len)",
17290                                             (PtrdiffT )here___0,   17290                                             (PtrdiffT )here___0,
17291                                             (SizeT )sizeof(vki_size_t ));   17291                                             (SizeT )sizeof(vki_size_t ));
17292       break;   17292       break;
17293     }   17293     }
17294     while (1) {   17294     while (1) {
17295       here___1 = layout->o_arg3;   17295       here___1 = layout->o_arg3;
17296       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   17296       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
17297                                  1L);   17297                                  1L);
17298       if (tmp___3) {   17298       if (tmp___3) {
17299     17299  
17300       } else {   17300       } else {
17301         vgPlain_assert_fail((Bool )1,   17301         vgPlain_assert_fail((Bool )1,
17302                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   17302                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
17303                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,   17303                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,
17304                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17304                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17305                             "");   17305                             "");
17306       }   17306       }
17307       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   17307       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
17308       if (tmp___4) {   17308       if (tmp___4) {
17309     17309  
17310       } else {   17310       } else {
17311         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17311         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17312                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,   17312                             (Char const   *)"m_syswrap/syswrap-generic.c", 3478,
17313                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17313                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17314                             "");   17314                             "");
17315       }   17315       }
17316       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17316       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17317                                             (Char *)"mprotect(prot)",   17317                                             (Char *)"mprotect(prot)",
17318                                             (PtrdiffT )here___1,   17318                                             (PtrdiffT )here___1,
17319                                             (SizeT )sizeof(unsigned long ));   17319                                             (SizeT )sizeof(unsigned long ));
17320       break;   17320       break;
17321     }   17321     }
17322   } else {   17322   } else {
17323     17323  
17324   }   17324   }
17325   tmp___15 = vgModuleLocal_valid_client_addr(arrghs->arg1, arrghs->arg2, tid,   17325   tmp___15 = vgModuleLocal_valid_client_addr(arrghs->arg1, arrghs->arg2, tid,
17326                                              (Char const   *)"mprotect");   17326                                              (Char const   *)"mprotect");
17327   if (tmp___15) {   17327   if (tmp___15) {
17328     if (arrghs->arg3 & 50331648UL) {   17328     if (arrghs->arg3 & 50331648UL) {
17329       grows = (UInt )(arrghs->arg3 & 50331648UL);   17329       grows = (UInt )(arrghs->arg3 & 50331648UL);
17330       tmp___7 = vgPlain_am_find_nsegment(arrghs->arg1);   17330       tmp___7 = vgPlain_am_find_nsegment(arrghs->arg1);
17331       aseg = tmp___7;   17331       aseg = tmp___7;
17332       tmp___8 = __builtin_expect((long )(! (! aseg)), 1L);   17332       tmp___8 = __builtin_expect((long )(! (! aseg)), 1L);
17333       if (tmp___8) {   17333       if (tmp___8) {
17334     17334  
17335       } else {   17335       } else {
17336         vgPlain_assert_fail((Bool )1, (Char const   *)"aseg",   17336         vgPlain_assert_fail((Bool )1, (Char const   *)"aseg",
17337                             (Char const   *)"m_syswrap/syswrap-generic.c", 3504,   17337                             (Char const   *)"m_syswrap/syswrap-generic.c", 3504,
17338                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17338                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17339                             "");   17339                             "");
17340       }   17340       }
17341       if (grows == 16777216U) {   17341       if (grows == 16777216U) {
17342         rseg = vgPlain_am_next_nsegment((NSegment *)aseg, (Bool )0);   17342         rseg = vgPlain_am_next_nsegment((NSegment *)aseg, (Bool )0);
17343         if (rseg) {   17343         if (rseg) {
17344           if ((unsigned int const   )rseg->kind == 6U) {   17344           if ((unsigned int const   )rseg->kind == 6U) {
17345             if ((unsigned int const   )rseg->smode == 2U) {   17345             if ((unsigned int const   )rseg->smode == 2U) {
17346               if (rseg->end + 1UL == aseg->start) {   17346               if (rseg->end + 1UL == aseg->start) {
17347                 end = arrghs->arg1 + arrghs->arg2;   17347                 end = arrghs->arg1 + arrghs->arg2;
17348                 arrghs->arg1 = (UWord )aseg->start;   17348                 arrghs->arg1 = (UWord )aseg->start;
17349                 arrghs->arg2 = end - (Addr )aseg->start;   17349                 arrghs->arg2 = end - (Addr )aseg->start;
17350                 arrghs->arg3 &= 4278190079UL;   17350                 arrghs->arg3 &= 4278190079UL;
17351               } else {   17351               } else {
17352                 goto _L___1;   17352                 goto _L___1;
17353               }   17353               }
17354             } else {   17354             } else {
17355               goto _L___1;   17355               goto _L___1;
17356             }   17356             }
17357           } else {   17357           } else {
17358             goto _L___1;   17358             goto _L___1;
17359           }   17359           }
17360         } else {   17360         } else {
17361           _L___1: /* CIL Label */   17361           _L___1: /* CIL Label */
17362           _L___0: /* CIL Label */   17362           _L___0: /* CIL Label */
17363           _L: /* CIL Label */   17363           _L: /* CIL Label */
17364           while (1) {   17364           while (1) {
17365             wzz___0 = (Word )22;   17365             wzz___0 = (Word )22;
17366             if (wzz___0 >= 0L) {   17366             if (wzz___0 >= 0L) {
17367               if (wzz___0 < 10000L) {   17367               if (wzz___0 < 10000L) {
17368                 tmp___9 = 1;   17368                 tmp___9 = 1;
17369               } else {   17369               } else {
17370                 tmp___9 = 0;   17370                 tmp___9 = 0;
17371               }   17371               }
17372             } else {   17372             } else {
17373               tmp___9 = 0;   17373               tmp___9 = 0;
17374             }   17374             }
17375             tmp___10 = __builtin_expect((long )tmp___9, 1L);   17375             tmp___10 = __builtin_expect((long )tmp___9, 1L);
17376             if (tmp___10) {   17376             if (tmp___10) {
17377     17377  
17378             } else {   17378             } else {
17379               vgPlain_assert_fail((Bool )1,   17379               vgPlain_assert_fail((Bool )1,
17380                                   (Char const   *)"wzz >= 0 && wzz < 10000",   17380                                   (Char const   *)"wzz >= 0 && wzz < 10000",
17381                                   (Char const   *)"m_syswrap/syswrap-generic.c",   17381                                   (Char const   *)"m_syswrap/syswrap-generic.c",
17382                                   3517,   17382                                   3517,
17383                                   (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17383                                   (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17384                                   "");   17384                                   "");
17385             }   17385             }
17386             status->what = (enum __anonenum_what_133 )1;   17386             status->what = (enum __anonenum_what_133 )1;
17387             status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___0);   17387             status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___0);
17388             break;   17388             break;
17389           }   17389           }
17390         }   17390         }
17391       } else   17391       } else
17392       if (grows == 33554432U) {   17392       if (grows == 33554432U) {
17393         rseg = vgPlain_am_next_nsegment((NSegment *)aseg, (Bool )1);   17393         rseg = vgPlain_am_next_nsegment((NSegment *)aseg, (Bool )1);
17394         if (rseg) {   17394         if (rseg) {
17395           if ((unsigned int const   )rseg->kind == 6U) {   17395           if ((unsigned int const   )rseg->kind == 6U) {
17396             if ((unsigned int const   )rseg->smode == 0U) {   17396             if ((unsigned int const   )rseg->smode == 0U) {
17397               if (aseg->end + 1UL == rseg->start) {   17397               if (aseg->end + 1UL == rseg->start) {
17398                 arrghs->arg2 = (UWord )((aseg->end - (Addr const   )arrghs->arg1) + 1UL);   17398                 arrghs->arg2 = (UWord )((aseg->end - (Addr const   )arrghs->arg1) + 1UL);
17399                 arrghs->arg3 &= 4261412863UL;   17399                 arrghs->arg3 &= 4261412863UL;
17400               } else {   17400               } else {
17401                 goto _L___4;   17401                 goto _L___4;
17402               }   17402               }
17403             } else {   17403             } else {
17404               goto _L___4;   17404               goto _L___4;
17405             }   17405             }
17406           } else {   17406           } else {
17407             goto _L___4;   17407             goto _L___4;
17408           }   17408           }
17409         } else {   17409         } else {
17410           _L___4: /* CIL Label */   17410           _L___4: /* CIL Label */
17411           _L___3: /* CIL Label */   17411           _L___3: /* CIL Label */
17412           _L___2: /* CIL Label */   17412           _L___2: /* CIL Label */
17413           while (1) {   17413           while (1) {
17414             wzz___1 = (Word )22;   17414             wzz___1 = (Word )22;
17415             if (wzz___1 >= 0L) {   17415             if (wzz___1 >= 0L) {
17416               if (wzz___1 < 10000L) {   17416               if (wzz___1 < 10000L) {
17417                 tmp___11 = 1;   17417                 tmp___11 = 1;
17418               } else {   17418               } else {
17419                 tmp___11 = 0;   17419                 tmp___11 = 0;
17420               }   17420               }
17421             } else {   17421             } else {
17422               tmp___11 = 0;   17422               tmp___11 = 0;
17423             }   17423             }
17424             tmp___12 = __builtin_expect((long )tmp___11, 1L);   17424             tmp___12 = __builtin_expect((long )tmp___11, 1L);
17425             if (tmp___12) {   17425             if (tmp___12) {
17426     17426  
17427             } else {   17427             } else {
17428               vgPlain_assert_fail((Bool )1,   17428               vgPlain_assert_fail((Bool )1,
17429                                   (Char const   *)"wzz >= 0 && wzz < 10000",   17429                                   (Char const   *)"wzz >= 0 && wzz < 10000",
17430                                   (Char const   *)"m_syswrap/syswrap-generic.c",   17430                                   (Char const   *)"m_syswrap/syswrap-generic.c",
17431                                   3528,   17431                                   3528,
17432                                   (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17432                                   (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17433                                   "");   17433                                   "");
17434             }   17434             }
17435             status->what = (enum __anonenum_what_133 )1;   17435             status->what = (enum __anonenum_what_133 )1;
17436             status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___1);   17436             status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___1);
17437             break;   17437             break;
17438           }   17438           }
17439         }   17439         }
17440       } else {   17440       } else {
17441         while (1) {   17441         while (1) {
17442           wzz___2 = (Word )22;   17442           wzz___2 = (Word )22;
17443           if (wzz___2 >= 0L) {   17443           if (wzz___2 >= 0L) {
17444             if (wzz___2 < 10000L) {   17444             if (wzz___2 < 10000L) {
17445               tmp___13 = 1;   17445               tmp___13 = 1;
17446             } else {   17446             } else {
17447               tmp___13 = 0;   17447               tmp___13 = 0;
17448             }   17448             }
17449           } else {   17449           } else {
17450             tmp___13 = 0;   17450             tmp___13 = 0;
17451           }   17451           }
17452           tmp___14 = __builtin_expect((long )tmp___13, 1L);   17452           tmp___14 = __builtin_expect((long )tmp___13, 1L);
17453           if (tmp___14) {   17453           if (tmp___14) {
17454     17454  
17455           } else {   17455           } else {
17456             vgPlain_assert_fail((Bool )1,   17456             vgPlain_assert_fail((Bool )1,
17457                                 (Char const   *)"wzz >= 0 && wzz < 10000",   17457                                 (Char const   *)"wzz >= 0 && wzz < 10000",
17458                                 (Char const   *)"m_syswrap/syswrap-generic.c",   17458                                 (Char const   *)"m_syswrap/syswrap-generic.c",
17459                                 3532,   17459                                 3532,
17460                                 (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17460                                 (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17461                                 "");   17461                                 "");
17462           }   17462           }
17463           status->what = (enum __anonenum_what_133 )1;   17463           status->what = (enum __anonenum_what_133 )1;
17464           status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___2);   17464           status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___2);
17465           break;   17465           break;
17466         }   17466         }
17467       }   17467       }
17468     } else {   17468     } else {
17469     17469  
17470     }   17470     }
17471   } else {   17471   } else {
17472     while (1) {   17472     while (1) {
17473       wzz = (Word )12;   17473       wzz = (Word )12;
17474       if (wzz >= 0L) {   17474       if (wzz >= 0L) {
17475         if (wzz < 10000L) {   17475         if (wzz < 10000L) {
17476           tmp___5 = 1;   17476           tmp___5 = 1;
17477         } else {   17477         } else {
17478           tmp___5 = 0;   17478           tmp___5 = 0;
17479         }   17479         }
17480       } else {   17480       } else {
17481         tmp___5 = 0;   17481         tmp___5 = 0;
17482       }   17482       }
17483       tmp___6 = __builtin_expect((long )tmp___5, 1L);   17483       tmp___6 = __builtin_expect((long )tmp___5, 1L);
17484       if (tmp___6) {   17484       if (tmp___6) {
17485     17485  
17486       } else {   17486       } else {
17487         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   17487         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
17488                             (Char const   *)"m_syswrap/syswrap-generic.c", 3481,   17488                             (Char const   *)"m_syswrap/syswrap-generic.c", 3481,
17489                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",   17489                             (Char const   *)"vgSysWrap_generic_sys_mprotect_before",
17490                             "");   17490                             "");
17491       }   17491       }
17492       status->what = (enum __anonenum_what_133 )1;   17492       status->what = (enum __anonenum_what_133 )1;
17493       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   17493       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
17494       break;   17494       break;
17495     }   17495     }
17496   }   17496   }
17497   return;   17497   return;
17498 }   17498 }
17499 }   17499 }
17500 void vgSysWrap_generic_sys_mprotect_after(ThreadId tid , SyscallArgs *arrghs ,   17500 void vgSysWrap_generic_sys_mprotect_after(ThreadId tid , SyscallArgs *arrghs ,
17501                                           SyscallStatus *status )   17501                                           SyscallStatus *status )
17502 {   17502 {
17503   Addr a ;   17503   Addr a ;
17504   SizeT len ;   17504   SizeT len ;
17505   Int prot ;   17505   Int prot ;
17506     17506  
17507   {   17507   {
17508   a = arrghs->arg1;   17508   a = arrghs->arg1;
17509   len = arrghs->arg2;   17509   len = arrghs->arg2;
17510   prot = (Int )arrghs->arg3;   17510   prot = (Int )arrghs->arg3;
17511   vgModuleLocal_notify_core_and_tool_of_mprotect(a, len, prot);   17511   vgModuleLocal_notify_core_and_tool_of_mprotect(a, len, prot);
17512   return;   17512   return;
17513 }   17513 }
17514 }   17514 }
17515 void vgSysWrap_generic_sys_munmap_before(ThreadId tid ,   17515 void vgSysWrap_generic_sys_munmap_before(ThreadId tid ,
17516                                          SyscallArgLayout *layout ,   17516                                          SyscallArgLayout *layout ,
17517                                          SyscallArgs *arrghs ,   17517                                          SyscallArgs *arrghs ,
17518                                          SyscallStatus *status , UWord *flags )   17518                                          SyscallStatus *status , UWord *flags )
17519 {   17519 {
17520   Int here ;   17520   Int here ;
17521   long tmp ;   17521   long tmp ;
17522   long tmp___0 ;   17522   long tmp___0 ;
17523   Int here___0 ;   17523   Int here___0 ;
17524   long tmp___1 ;   17524   long tmp___1 ;
17525   long tmp___2 ;   17525   long tmp___2 ;
17526   Word wzz ;   17526   Word wzz ;
17527   int tmp___3 ;   17527   int tmp___3 ;
17528   long tmp___4 ;   17528   long tmp___4 ;
17529   Bool tmp___5 ;   17529   Bool tmp___5 ;
17530     17530  
17531   {   17531   {
17532   if (vgPlain_clo_trace_syscalls) {   17532   if (vgPlain_clo_trace_syscalls) {
17533     vgPlain_printf("sys_munmap ( %#lx, %llu )", arrghs->arg1,   17533     vgPlain_printf("sys_munmap ( %#lx, %llu )", arrghs->arg1,
17534                    (ULong )arrghs->arg2);   17534                    (ULong )arrghs->arg2);
17535   } else {   17535   } else {
17536     17536  
17537   }   17537   }
17538   if (vgPlain_tdict.track_pre_reg_read) {   17538   if (vgPlain_tdict.track_pre_reg_read) {
17539     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17539     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17540                                           (Char *)"(syscallno)",   17540                                           (Char *)"(syscallno)",
17541                                           (PtrdiffT )layout->o_sysno,   17541                                           (PtrdiffT )layout->o_sysno,
17542                                           (SizeT )sizeof(UWord ));   17542                                           (SizeT )sizeof(UWord ));
17543     while (1) {   17543     while (1) {
17544       here = layout->o_arg1;   17544       here = layout->o_arg1;
17545       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   17545       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
17546                              1L);   17546                              1L);
17547       if (tmp) {   17547       if (tmp) {
17548     17548  
17549       } else {   17549       } else {
17550         vgPlain_assert_fail((Bool )1,   17550         vgPlain_assert_fail((Bool )1,
17551                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   17551                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
17552                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,   17552                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,
17553                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",   17553                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",
17554                             "");   17554                             "");
17555       }   17555       }
17556       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   17556       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
17557       if (tmp___0) {   17557       if (tmp___0) {
17558     17558  
17559       } else {   17559       } else {
17560         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17560         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17561                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,   17561                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,
17562                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",   17562                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",
17563                             "");   17563                             "");
17564       }   17564       }
17565       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17565       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17566                                             (Char *)"munmap(start)",   17566                                             (Char *)"munmap(start)",
17567                                             (PtrdiffT )here,   17567                                             (PtrdiffT )here,
17568                                             (SizeT )sizeof(unsigned long ));   17568                                             (SizeT )sizeof(unsigned long ));
17569       break;   17569       break;
17570     }   17570     }
17571     while (1) {   17571     while (1) {
17572       here___0 = layout->o_arg2;   17572       here___0 = layout->o_arg2;
17573       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   17573       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
17574                                  1L);   17574                                  1L);
17575       if (tmp___1) {   17575       if (tmp___1) {
17576     17576  
17577       } else {   17577       } else {
17578         vgPlain_assert_fail((Bool )1,   17578         vgPlain_assert_fail((Bool )1,
17579                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   17579                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
17580                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,   17580                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,
17581                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",   17581                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",
17582                             "");   17582                             "");
17583       }   17583       }
17584       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   17584       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
17585       if (tmp___2) {   17585       if (tmp___2) {
17586     17586  
17587       } else {   17587       } else {
17588         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17588         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17589                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,   17589                             (Char const   *)"m_syswrap/syswrap-generic.c", 3551,
17590                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",   17590                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",
17591                             "");   17591                             "");
17592       }   17592       }
17593       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17593       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17594                                             (Char *)"munmap(length)",   17594                                             (Char *)"munmap(length)",
17595                                             (PtrdiffT )here___0,   17595                                             (PtrdiffT )here___0,
17596                                             (SizeT )sizeof(vki_size_t ));   17596                                             (SizeT )sizeof(vki_size_t ));
17597       break;   17597       break;
17598     }   17598     }
17599   } else {   17599   } else {
17600     17600  
17601   }   17601   }
17602   tmp___5 = vgModuleLocal_valid_client_addr(arrghs->arg1, arrghs->arg2, tid,   17602   tmp___5 = vgModuleLocal_valid_client_addr(arrghs->arg1, arrghs->arg2, tid,
17603                                             (Char const   *)"munmap");   17603                                             (Char const   *)"munmap");
17604   if (tmp___5) {   17604   if (tmp___5) {
17605     17605  
17606   } else {   17606   } else {
17607     while (1) {   17607     while (1) {
17608       wzz = (Word )22;   17608       wzz = (Word )22;
17609       if (wzz >= 0L) {   17609       if (wzz >= 0L) {
17610         if (wzz < 10000L) {   17610         if (wzz < 10000L) {
17611           tmp___3 = 1;   17611           tmp___3 = 1;
17612         } else {   17612         } else {
17613           tmp___3 = 0;   17613           tmp___3 = 0;
17614         }   17614         }
17615       } else {   17615       } else {
17616         tmp___3 = 0;   17616         tmp___3 = 0;
17617       }   17617       }
17618       tmp___4 = __builtin_expect((long )tmp___3, 1L);   17618       tmp___4 = __builtin_expect((long )tmp___3, 1L);
17619       if (tmp___4) {   17619       if (tmp___4) {
17620     17620  
17621       } else {   17621       } else {
17622         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   17622         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
17623                             (Char const   *)"m_syswrap/syswrap-generic.c", 3554,   17623                             (Char const   *)"m_syswrap/syswrap-generic.c", 3554,
17624                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",   17624                             (Char const   *)"vgSysWrap_generic_sys_munmap_before",
17625                             "");   17625                             "");
17626       }   17626       }
17627       status->what = (enum __anonenum_what_133 )1;   17627       status->what = (enum __anonenum_what_133 )1;
17628       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   17628       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
17629       break;   17629       break;
17630     }   17630     }
17631   }   17631   }
17632   return;   17632   return;
17633 }   17633 }
17634 }   17634 }
17635 void vgSysWrap_generic_sys_munmap_after(ThreadId tid , SyscallArgs *arrghs ,   17635 void vgSysWrap_generic_sys_munmap_after(ThreadId tid , SyscallArgs *arrghs ,
17636                                         SyscallStatus *status )   17636                                         SyscallStatus *status )
17637 {   17637 {
17638   Addr a ;   17638   Addr a ;
17639   SizeT len ;   17639   SizeT len ;
17640     17640  
17641   {   17641   {
17642   a = arrghs->arg1;   17642   a = arrghs->arg1;
17643   len = arrghs->arg2;   17643   len = arrghs->arg2;
17644   vgModuleLocal_notify_core_and_tool_of_munmap((Addr )((Addr64 )a),   17644   vgModuleLocal_notify_core_and_tool_of_munmap((Addr )((Addr64 )a),
17645                                                (SizeT )((ULong )len));   17645                                                (SizeT )((ULong )len));
17646   return;   17646   return;
17647 }   17647 }
17648 }   17648 }
17649 void vgSysWrap_generic_sys_mincore_before(ThreadId tid ,   17649 void vgSysWrap_generic_sys_mincore_before(ThreadId tid ,
17650                                           SyscallArgLayout *layout ,   17650                                           SyscallArgLayout *layout ,
17651                                           SyscallArgs *arrghs ,   17651                                           SyscallArgs *arrghs ,
17652                                           SyscallStatus *status , UWord *flags )   17652                                           SyscallStatus *status , UWord *flags )
17653 {   17653 {
17654   Int here ;   17654   Int here ;
17655   long tmp ;   17655   long tmp ;
17656   long tmp___0 ;   17656   long tmp___0 ;
17657   Int here___0 ;   17657   Int here___0 ;
17658   long tmp___1 ;   17658   long tmp___1 ;
17659   long tmp___2 ;   17659   long tmp___2 ;
17660   Int here___1 ;   17660   Int here___1 ;
17661   long tmp___3 ;   17661   long tmp___3 ;
17662   long tmp___4 ;   17662   long tmp___4 ;
17663     17663  
17664   {   17664   {
17665   if (vgPlain_clo_trace_syscalls) {   17665   if (vgPlain_clo_trace_syscalls) {
17666     vgPlain_printf("sys_mincore ( %#lx, %llu, %#lx )", arrghs->arg1,   17666     vgPlain_printf("sys_mincore ( %#lx, %llu, %#lx )", arrghs->arg1,
17667                    (ULong )arrghs->arg2, arrghs->arg3);   17667                    (ULong )arrghs->arg2, arrghs->arg3);
17668   } else {   17668   } else {
17669     17669  
17670   }   17670   }
17671   if (vgPlain_tdict.track_pre_reg_read) {   17671   if (vgPlain_tdict.track_pre_reg_read) {
17672     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17672     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17673                                           (Char *)"(syscallno)",   17673                                           (Char *)"(syscallno)",
17674                                           (PtrdiffT )layout->o_sysno,   17674                                           (PtrdiffT )layout->o_sysno,
17675                                           (SizeT )sizeof(UWord ));   17675                                           (SizeT )sizeof(UWord ));
17676     while (1) {   17676     while (1) {
17677       here = layout->o_arg1;   17677       here = layout->o_arg1;
17678       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   17678       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
17679                              1L);   17679                              1L);
17680       if (tmp) {   17680       if (tmp) {
17681     17681  
17682       } else {   17682       } else {
17683         vgPlain_assert_fail((Bool )1,   17683         vgPlain_assert_fail((Bool )1,
17684                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   17684                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
17685                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,   17685                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,
17686                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",   17686                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",
17687                             "");   17687                             "");
17688       }   17688       }
17689       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   17689       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
17690       if (tmp___0) {   17690       if (tmp___0) {
17691     17691  
17692       } else {   17692       } else {
17693         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17693         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17694                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,   17694                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,
17695                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",   17695                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",
17696                             "");   17696                             "");
17697       }   17697       }
17698       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17698       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17699                                             (Char *)"mincore(start)",   17699                                             (Char *)"mincore(start)",
17700                                             (PtrdiffT )here,   17700                                             (PtrdiffT )here,
17701                                             (SizeT )sizeof(unsigned long ));   17701                                             (SizeT )sizeof(unsigned long ));
17702       break;   17702       break;
17703     }   17703     }
17704     while (1) {   17704     while (1) {
17705       here___0 = layout->o_arg2;   17705       here___0 = layout->o_arg2;
17706       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   17706       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
17707                                  1L);   17707                                  1L);
17708       if (tmp___1) {   17708       if (tmp___1) {
17709     17709  
17710       } else {   17710       } else {
17711         vgPlain_assert_fail((Bool )1,   17711         vgPlain_assert_fail((Bool )1,
17712                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   17712                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
17713                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,   17713                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,
17714                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",   17714                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",
17715                             "");   17715                             "");
17716       }   17716       }
17717       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   17717       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
17718       if (tmp___2) {   17718       if (tmp___2) {
17719     17719  
17720       } else {   17720       } else {
17721         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17721         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17722                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,   17722                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,
17723                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",   17723                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",
17724                             "");   17724                             "");
17725       }   17725       }
17726       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17726       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17727                                             (Char *)"mincore(length)",   17727                                             (Char *)"mincore(length)",
17728                                             (PtrdiffT )here___0,   17728                                             (PtrdiffT )here___0,
17729                                             (SizeT )sizeof(vki_size_t ));   17729                                             (SizeT )sizeof(vki_size_t ));
17730       break;   17730       break;
17731     }   17731     }
17732     while (1) {   17732     while (1) {
17733       here___1 = layout->o_arg3;   17733       here___1 = layout->o_arg3;
17734       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned char *) <= sizeof(UWord )))),   17734       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned char *) <= sizeof(UWord )))),
17735                                  1L);   17735                                  1L);
17736       if (tmp___3) {   17736       if (tmp___3) {
17737     17737  
17738       } else {   17738       } else {
17739         vgPlain_assert_fail((Bool )1,   17739         vgPlain_assert_fail((Bool )1,
17740                             (Char const   *)"sizeof(unsigned char *) <= sizeof(UWord)",   17740                             (Char const   *)"sizeof(unsigned char *) <= sizeof(UWord)",
17741                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,   17741                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,
17742                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",   17742                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",
17743                             "");   17743                             "");
17744       }   17744       }
17745       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   17745       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
17746       if (tmp___4) {   17746       if (tmp___4) {
17747     17747  
17748       } else {   17748       } else {
17749         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17749         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17750                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,   17750                             (Char const   *)"m_syswrap/syswrap-generic.c", 3570,
17751                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",   17751                             (Char const   *)"vgSysWrap_generic_sys_mincore_before",
17752                             "");   17752                             "");
17753       }   17753       }
17754       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17754       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17755                                             (Char *)"mincore(vec)",   17755                                             (Char *)"mincore(vec)",
17756                                             (PtrdiffT )here___1,   17756                                             (PtrdiffT )here___1,
17757                                             (SizeT )sizeof(unsigned char *));   17757                                             (SizeT )sizeof(unsigned char *));
17758       break;   17758       break;
17759     }   17759     }
17760   } else {   17760   } else {
17761     17761  
17762   }   17762   }
17763   while (1) {   17763   while (1) {
17764     if (vgPlain_tdict.track_pre_mem_write) {   17764     if (vgPlain_tdict.track_pre_mem_write) {
17765       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   17765       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
17766                                              (Char *)"mincore(vec)",   17766                                              (Char *)"mincore(vec)",
17767                                              arrghs->arg3,   17767                                              arrghs->arg3,
17768                                              (((arrghs->arg2 + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)) / (1UL << 12));   17768                                              (((arrghs->arg2 + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)) / (1UL << 12));
17769     } else {   17769     } else {
17770     17770  
17771     }   17771     }
17772     break;   17772     break;
17773   }   17773   }
17774   return;   17774   return;
17775 }   17775 }
17776 }   17776 }
17777 void vgSysWrap_generic_sys_mincore_after(ThreadId tid , SyscallArgs *arrghs ,   17777 void vgSysWrap_generic_sys_mincore_after(ThreadId tid , SyscallArgs *arrghs ,
17778                                          SyscallStatus *status )   17778                                          SyscallStatus *status )
17779 {   17779 {
17780     17780  
17781     17781  
17782   {   17782   {
17783   while (1) {   17783   while (1) {
17784     if (vgPlain_tdict.track_post_mem_write) {   17784     if (vgPlain_tdict.track_post_mem_write) {
17785       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg3,   17785       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg3,
17786                                               (((arrghs->arg2 + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)) / (1UL << 12));   17786                                               (((arrghs->arg2 + (1UL << 12)) - 1UL) & ~ ((1UL << 12) - 1UL)) / (1UL << 12));
17787     } else {   17787     } else {
17788     17788  
17789     }   17789     }
17790     break;   17790     break;
17791   }   17791   }
17792   return;   17792   return;
17793 }   17793 }
17794 }   17794 }
17795 void vgSysWrap_generic_sys_nanosleep_before(ThreadId tid ,   17795 void vgSysWrap_generic_sys_nanosleep_before(ThreadId tid ,
17796                                             SyscallArgLayout *layout ,   17796                                             SyscallArgLayout *layout ,
17797                                             SyscallArgs *arrghs ,   17797                                             SyscallArgs *arrghs ,
17798                                             SyscallStatus *status ,   17798                                             SyscallStatus *status ,
17799                                             UWord *flags )   17799                                             UWord *flags )
17800 {   17800 {
17801   Int here ;   17801   Int here ;
17802   long tmp ;   17802   long tmp ;
17803   long tmp___0 ;   17803   long tmp___0 ;
17804   Int here___0 ;   17804   Int here___0 ;
17805   long tmp___1 ;   17805   long tmp___1 ;
17806   long tmp___2 ;   17806   long tmp___2 ;
17807     17807  
17808   {   17808   {
17809   *flags |= (unsigned long )((1 << 1) | (1 << 2));   17809   *flags |= (unsigned long )((1 << 1) | (1 << 2));
17810   if (vgPlain_clo_trace_syscalls) {   17810   if (vgPlain_clo_trace_syscalls) {
17811     vgPlain_printf("sys_nanosleep ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);   17811     vgPlain_printf("sys_nanosleep ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);
17812   } else {   17812   } else {
17813     17813  
17814   }   17814   }
17815   if (vgPlain_tdict.track_pre_reg_read) {   17815   if (vgPlain_tdict.track_pre_reg_read) {
17816     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17816     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17817                                           (Char *)"(syscallno)",   17817                                           (Char *)"(syscallno)",
17818                                           (PtrdiffT )layout->o_sysno,   17818                                           (PtrdiffT )layout->o_sysno,
17819                                           (SizeT )sizeof(UWord ));   17819                                           (SizeT )sizeof(UWord ));
17820     while (1) {   17820     while (1) {
17821       here = layout->o_arg1;   17821       here = layout->o_arg1;
17822       tmp = __builtin_expect((long )(! (! (sizeof(struct timespec *) <= sizeof(UWord )))),   17822       tmp = __builtin_expect((long )(! (! (sizeof(struct timespec *) <= sizeof(UWord )))),
17823                              1L);   17823                              1L);
17824       if (tmp) {   17824       if (tmp) {
17825     17825  
17826       } else {   17826       } else {
17827         vgPlain_assert_fail((Bool )1,   17827         vgPlain_assert_fail((Bool )1,
17828                             (Char const   *)"sizeof(struct timespec *) <= sizeof(UWord)",   17828                             (Char const   *)"sizeof(struct timespec *) <= sizeof(UWord)",
17829                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,   17829                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,
17830                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",   17830                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",
17831                             "");   17831                             "");
17832       }   17832       }
17833       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   17833       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
17834       if (tmp___0) {   17834       if (tmp___0) {
17835     17835  
17836       } else {   17836       } else {
17837         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17837         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17838                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,   17838                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,
17839                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",   17839                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",
17840                             "");   17840                             "");
17841       }   17841       }
17842       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17842       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17843                                             (Char *)"nanosleep(req)",   17843                                             (Char *)"nanosleep(req)",
17844                                             (PtrdiffT )here,   17844                                             (PtrdiffT )here,
17845                                             (SizeT )sizeof(struct timespec *));   17845                                             (SizeT )sizeof(struct timespec *));
17846       break;   17846       break;
17847     }   17847     }
17848     while (1) {   17848     while (1) {
17849       here___0 = layout->o_arg2;   17849       here___0 = layout->o_arg2;
17850       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct timespec *) <= sizeof(UWord )))),   17850       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct timespec *) <= sizeof(UWord )))),
17851                                  1L);   17851                                  1L);
17852       if (tmp___1) {   17852       if (tmp___1) {
17853     17853  
17854       } else {   17854       } else {
17855         vgPlain_assert_fail((Bool )1,   17855         vgPlain_assert_fail((Bool )1,
17856                             (Char const   *)"sizeof(struct timespec *) <= sizeof(UWord)",   17856                             (Char const   *)"sizeof(struct timespec *) <= sizeof(UWord)",
17857                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,   17857                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,
17858                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",   17858                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",
17859                             "");   17859                             "");
17860       }   17860       }
17861       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   17861       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
17862       if (tmp___2) {   17862       if (tmp___2) {
17863     17863  
17864       } else {   17864       } else {
17865         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   17865         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
17866                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,   17866                             (Char const   *)"m_syswrap/syswrap-generic.c", 3583,
17867                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",   17867                             (Char const   *)"vgSysWrap_generic_sys_nanosleep_before",
17868                             "");   17868                             "");
17869       }   17869       }
17870       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   17870       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
17871                                             (Char *)"nanosleep(rem)",   17871                                             (Char *)"nanosleep(rem)",
17872                                             (PtrdiffT )here___0,   17872                                             (PtrdiffT )here___0,
17873                                             (SizeT )sizeof(struct timespec *));   17873                                             (SizeT )sizeof(struct timespec *));
17874       break;   17874       break;
17875     }   17875     }
17876   } else {   17876   } else {
17877     17877  
17878   }   17878   }
17879   while (1) {   17879   while (1) {
17880     if (vgPlain_tdict.track_pre_mem_read) {   17880     if (vgPlain_tdict.track_pre_mem_read) {
17881       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   17881       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
17882                                             (Char *)"nanosleep(req)",   17882                                             (Char *)"nanosleep(req)",
17883                                             arrghs->arg1,   17883                                             arrghs->arg1,
17884                                             (SizeT )sizeof(struct vki_timespec ));   17884                                             (SizeT )sizeof(struct vki_timespec ));
17885     } else {   17885     } else {
17886     17886  
17887     }   17887     }
17888     break;   17888     break;
17889   }   17889   }
17890   if (arrghs->arg2 != 0UL) {   17890   if (arrghs->arg2 != 0UL) {
17891     while (1) {   17891     while (1) {
17892       if (vgPlain_tdict.track_pre_mem_write) {   17892       if (vgPlain_tdict.track_pre_mem_write) {
17893         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   17893         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
17894                                                (Char *)"nanosleep(rem)",   17894                                                (Char *)"nanosleep(rem)",
17895                                                arrghs->arg2,   17895                                                arrghs->arg2,
17896                                                (SizeT )sizeof(struct vki_timespec ));   17896                                                (SizeT )sizeof(struct vki_timespec ));
17897       } else {   17897       } else {
17898     17898  
17899       }   17899       }
17900       break;   17900       break;
17901     }   17901     }
17902   } else {   17902   } else {
17903     17903  
17904   }   17904   }
17905   return;   17905   return;
17906 }   17906 }
17907 }   17907 }
17908 void vgSysWrap_generic_sys_nanosleep_after(ThreadId tid , SyscallArgs *arrghs ,   17908 void vgSysWrap_generic_sys_nanosleep_after(ThreadId tid , SyscallArgs *arrghs ,
17909                                            SyscallStatus *status )   17909                                            SyscallStatus *status )
17910 {   17910 {
17911   Bool tmp ;   17911   Bool tmp ;
17912   Bool tmp___0 ;   17912   Bool tmp___0 ;
17913   int tmp___1 ;   17913   int tmp___1 ;
17914   long tmp___2 ;   17914   long tmp___2 ;
17915   Bool tmp___3 ;   17915   Bool tmp___3 ;
17916   UWord tmp___4 ;   17916   UWord tmp___4 ;
17917     17917  
17918   {   17918   {
17919   if ((unsigned int )status->what == 1U) {   17919   if ((unsigned int )status->what == 1U) {
17920     tmp = sr_isError(status->sres);   17920     tmp = sr_isError(status->sres);
17921     if (tmp) {   17921     if (tmp) {
17922       goto _L;   17922       goto _L;
17923     } else {   17923     } else {
17924       tmp___1 = 1;   17924       tmp___1 = 1;
17925     }   17925     }
17926   } else   17926   } else
17927   _L: /* CIL Label */   17927   _L: /* CIL Label */
17928   if ((unsigned int )status->what == 1U) {   17928   if ((unsigned int )status->what == 1U) {
17929     tmp___0 = sr_isError(status->sres);   17929     tmp___0 = sr_isError(status->sres);
17930     if (tmp___0) {   17930     if (tmp___0) {
17931       tmp___1 = 1;   17931       tmp___1 = 1;
17932     } else {   17932     } else {
17933       tmp___1 = 0;   17933       tmp___1 = 0;
17934     }   17934     }
17935   } else {   17935   } else {
17936     tmp___1 = 0;   17936     tmp___1 = 0;
17937   }   17937   }
17938   tmp___2 = __builtin_expect((long )tmp___1, 1L);   17938   tmp___2 = __builtin_expect((long )tmp___1, 1L);
17939   if (tmp___2) {   17939   if (tmp___2) {
17940     17940  
17941   } else {   17941   } else {
17942     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS || FAILURE",   17942     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS || FAILURE",
17943                         (Char const   *)"m_syswrap/syswrap-generic.c", 3591,   17943                         (Char const   *)"m_syswrap/syswrap-generic.c", 3591,
17944                         (Char const   *)"vgSysWrap_generic_sys_nanosleep_after",   17944                         (Char const   *)"vgSysWrap_generic_sys_nanosleep_after",
17945                         "");   17945                         "");
17946   }   17946   }
17947   if (arrghs->arg2 != 0UL) {   17947   if (arrghs->arg2 != 0UL) {
17948     if ((unsigned int )status->what == 1U) {   17948     if ((unsigned int )status->what == 1U) {
17949       tmp___3 = sr_isError(status->sres);   17949       tmp___3 = sr_isError(status->sres);
17950       if (tmp___3) {   17950       if (tmp___3) {
17951         tmp___4 = getERR(status);   17951         tmp___4 = getERR(status);
17952         if (tmp___4 == 4UL) {   17952         if (tmp___4 == 4UL) {
17953           while (1) {   17953           while (1) {
17954             if (vgPlain_tdict.track_post_mem_write) {   17954             if (vgPlain_tdict.track_post_mem_write) {
17955               (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   17955               (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
17956                                                       arrghs->arg2,   17956                                                       arrghs->arg2,
17957                                                       (SizeT )sizeof(struct vki_timespec ));   17957                                                       (SizeT )sizeof(struct vki_timespec ));
17958             } else {   17958             } else {
17959     17959  
17960             }   17960             }
17961             break;   17961             break;
17962           }   17962           }
17963         } else {   17963         } else {
17964     17964  
17965         }   17965         }
17966       } else {   17966       } else {
17967     17967  
17968       }   17968       }
17969     } else {   17969     } else {
17970     17970  
17971     }   17971     }
17972   } else {   17972   } else {
17973     17973  
17974   }   17974   }
17975   return;   17975   return;
17976 }   17976 }
17977 }   17977 }
17978 void vgSysWrap_generic_sys_open_before(ThreadId tid , SyscallArgLayout *layout ,   17978 void vgSysWrap_generic_sys_open_before(ThreadId tid , SyscallArgLayout *layout ,
17979                                        SyscallArgs *arrghs ,   17979                                        SyscallArgs *arrghs ,
17980                                        SyscallStatus *status , UWord *flags )   17980                                        SyscallStatus *status , UWord *flags )
17981 {   17981 {
17982   Int here ;   17982   Int here ;
17983   long tmp ;   17983   long tmp ;
17984   long tmp___0 ;   17984   long tmp___0 ;
17985   Int here___0 ;   17985   Int here___0 ;
17986   long tmp___1 ;   17986   long tmp___1 ;
17987   long tmp___2 ;   17987   long tmp___2 ;
17988   Int here___1 ;   17988   Int here___1 ;
17989   long tmp___3 ;   17989   long tmp___3 ;
17990   long tmp___4 ;   17990   long tmp___4 ;
17991   Int here___2 ;   17991   Int here___2 ;
17992   long tmp___5 ;   17992   long tmp___5 ;
17993   long tmp___6 ;   17993   long tmp___6 ;
17994   Int here___3 ;   17994   Int here___3 ;
17995   long tmp___7 ;   17995   long tmp___7 ;
17996   long tmp___8 ;   17996   long tmp___8 ;
17997   HChar name[30] ;   17997   HChar name[30] ;
17998   Char *arg1s ;   17998   Char *arg1s ;
17999   SysRes sres ;   17999   SysRes sres ;
18000   Int tmp___9 ;   18000   Int tmp___9 ;
18001   OffT off ;   18001   OffT off ;
18002   UWord tmp___10 ;   18002   UWord tmp___10 ;
18003   Off64T tmp___11 ;   18003   Off64T tmp___11 ;
18004   Word wzz ;   18004   Word wzz ;
18005   int tmp___12 ;   18005   int tmp___12 ;
18006   long tmp___13 ;   18006   long tmp___13 ;
18007   Bool tmp___14 ;   18007   Bool tmp___14 ;
18008   Bool tmp___15 ;   18008   Bool tmp___15 ;
18009   Int tmp___16 ;   18009   Int tmp___16 ;
18010   int tmp___17 ;   18010   int tmp___17 ;
18011   Int tmp___18 ;   18011   Int tmp___18 ;
18012   Int tmp___19 ;   18012   Int tmp___19 ;
18013   int tmp___20 ;   18013   int tmp___20 ;
18014   Int tmp___21 ;   18014   Int tmp___21 ;
18015     18015  
18016   {   18016   {
18017   if (arrghs->arg2 & 64UL) {   18017   if (arrghs->arg2 & 64UL) {
18018     if (vgPlain_clo_trace_syscalls) {   18018     if (vgPlain_clo_trace_syscalls) {
18019       vgPlain_printf("sys_open ( %#lx(%s), %ld, %ld )", arrghs->arg1,   18019       vgPlain_printf("sys_open ( %#lx(%s), %ld, %ld )", arrghs->arg1,
18020                      (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);   18020                      (char *)arrghs->arg1, arrghs->arg2, arrghs->arg3);
18021     } else {   18021     } else {
18022     18022  
18023     }   18023     }
18024     if (vgPlain_tdict.track_pre_reg_read) {   18024     if (vgPlain_tdict.track_pre_reg_read) {
18025       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18025       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18026                                             (Char *)"(syscallno)",   18026                                             (Char *)"(syscallno)",
18027                                             (PtrdiffT )layout->o_sysno,   18027                                             (PtrdiffT )layout->o_sysno,
18028                                             (SizeT )sizeof(UWord ));   18028                                             (SizeT )sizeof(UWord ));
18029       while (1) {   18029       while (1) {
18030         here = layout->o_arg1;   18030         here = layout->o_arg1;
18031         tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   18031         tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
18032                                1L);   18032                                1L);
18033         if (tmp) {   18033         if (tmp) {
18034     18034  
18035         } else {   18035         } else {
18036           vgPlain_assert_fail((Bool )1,   18036           vgPlain_assert_fail((Bool )1,
18037                               (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   18037                               (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
18038                               (Char const   *)"m_syswrap/syswrap-generic.c",   18038                               (Char const   *)"m_syswrap/syswrap-generic.c",
18039                               3602,   18039                               3602,
18040                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18040                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18041                               "");   18041                               "");
18042         }   18042         }
18043         tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   18043         tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
18044         if (tmp___0) {   18044         if (tmp___0) {
18045     18045  
18046         } else {   18046         } else {
18047           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18047           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18048                               (Char const   *)"m_syswrap/syswrap-generic.c",   18048                               (Char const   *)"m_syswrap/syswrap-generic.c",
18049                               3602,   18049                               3602,
18050                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18050                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18051                               "");   18051                               "");
18052         }   18052         }
18053         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18053         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18054                                               (Char *)"open(filename)",   18054                                               (Char *)"open(filename)",
18055                                               (PtrdiffT )here,   18055                                               (PtrdiffT )here,
18056                                               (SizeT )sizeof(char const   *));   18056                                               (SizeT )sizeof(char const   *));
18057         break;   18057         break;
18058       }   18058       }
18059       while (1) {   18059       while (1) {
18060         here___0 = layout->o_arg2;   18060         here___0 = layout->o_arg2;
18061         tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   18061         tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
18062                                    1L);   18062                                    1L);
18063         if (tmp___1) {   18063         if (tmp___1) {
18064     18064  
18065         } else {   18065         } else {
18066           vgPlain_assert_fail((Bool )1,   18066           vgPlain_assert_fail((Bool )1,
18067                               (Char const   *)"sizeof(int) <= sizeof(UWord)",   18067                               (Char const   *)"sizeof(int) <= sizeof(UWord)",
18068                               (Char const   *)"m_syswrap/syswrap-generic.c",   18068                               (Char const   *)"m_syswrap/syswrap-generic.c",
18069                               3602,   18069                               3602,
18070                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18070                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18071                               "");   18071                               "");
18072         }   18072         }
18073         tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   18073         tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
18074         if (tmp___2) {   18074         if (tmp___2) {
18075     18075  
18076         } else {   18076         } else {
18077           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18077           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18078                               (Char const   *)"m_syswrap/syswrap-generic.c",   18078                               (Char const   *)"m_syswrap/syswrap-generic.c",
18079                               3602,   18079                               3602,
18080                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18080                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18081                               "");   18081                               "");
18082         }   18082         }
18083         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18083         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18084                                               (Char *)"open(flags)",   18084                                               (Char *)"open(flags)",
18085                                               (PtrdiffT )here___0,   18085                                               (PtrdiffT )here___0,
18086                                               (SizeT )sizeof(int ));   18086                                               (SizeT )sizeof(int ));
18087         break;   18087         break;
18088       }   18088       }
18089       while (1) {   18089       while (1) {
18090         here___1 = layout->o_arg3;   18090         here___1 = layout->o_arg3;
18091         tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   18091         tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
18092                                    1L);   18092                                    1L);
18093         if (tmp___3) {   18093         if (tmp___3) {
18094     18094  
18095         } else {   18095         } else {
18096           vgPlain_assert_fail((Bool )1,   18096           vgPlain_assert_fail((Bool )1,
18097                               (Char const   *)"sizeof(int) <= sizeof(UWord)",   18097                               (Char const   *)"sizeof(int) <= sizeof(UWord)",
18098                               (Char const   *)"m_syswrap/syswrap-generic.c",   18098                               (Char const   *)"m_syswrap/syswrap-generic.c",
18099                               3602,   18099                               3602,
18100                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18100                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18101                               "");   18101                               "");
18102         }   18102         }
18103         tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   18103         tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
18104         if (tmp___4) {   18104         if (tmp___4) {
18105     18105  
18106         } else {   18106         } else {
18107           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18107           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18108                               (Char const   *)"m_syswrap/syswrap-generic.c",   18108                               (Char const   *)"m_syswrap/syswrap-generic.c",
18109                               3602,   18109                               3602,
18110                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18110                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18111                               "");   18111                               "");
18112         }   18112         }
18113         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18113         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18114                                               (Char *)"open(mode)",   18114                                               (Char *)"open(mode)",
18115                                               (PtrdiffT )here___1,   18115                                               (PtrdiffT )here___1,
18116                                               (SizeT )sizeof(int ));   18116                                               (SizeT )sizeof(int ));
18117         break;   18117         break;
18118       }   18118       }
18119     } else {   18119     } else {
18120     18120  
18121     }   18121     }
18122   } else {   18122   } else {
18123     if (vgPlain_clo_trace_syscalls) {   18123     if (vgPlain_clo_trace_syscalls) {
18124       vgPlain_printf("sys_open ( %#lx(%s), %ld )", arrghs->arg1,   18124       vgPlain_printf("sys_open ( %#lx(%s), %ld )", arrghs->arg1,
18125                      (char *)arrghs->arg1, arrghs->arg2);   18125                      (char *)arrghs->arg1, arrghs->arg2);
18126     } else {   18126     } else {
18127     18127  
18128     }   18128     }
18129     if (vgPlain_tdict.track_pre_reg_read) {   18129     if (vgPlain_tdict.track_pre_reg_read) {
18130       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18130       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18131                                             (Char *)"(syscallno)",   18131                                             (Char *)"(syscallno)",
18132                                             (PtrdiffT )layout->o_sysno,   18132                                             (PtrdiffT )layout->o_sysno,
18133                                             (SizeT )sizeof(UWord ));   18133                                             (SizeT )sizeof(UWord ));
18134       while (1) {   18134       while (1) {
18135         here___2 = layout->o_arg1;   18135         here___2 = layout->o_arg1;
18136         tmp___5 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   18136         tmp___5 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
18137                                    1L);   18137                                    1L);
18138         if (tmp___5) {   18138         if (tmp___5) {
18139     18139  
18140         } else {   18140         } else {
18141           vgPlain_assert_fail((Bool )1,   18141           vgPlain_assert_fail((Bool )1,
18142                               (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   18142                               (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
18143                               (Char const   *)"m_syswrap/syswrap-generic.c",   18143                               (Char const   *)"m_syswrap/syswrap-generic.c",
18144                               3607,   18144                               3607,
18145                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18145                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18146                               "");   18146                               "");
18147         }   18147         }
18148         tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   18148         tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
18149         if (tmp___6) {   18149         if (tmp___6) {
18150     18150  
18151         } else {   18151         } else {
18152           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18152           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18153                               (Char const   *)"m_syswrap/syswrap-generic.c",   18153                               (Char const   *)"m_syswrap/syswrap-generic.c",
18154                               3607,   18154                               3607,
18155                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18155                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18156                               "");   18156                               "");
18157         }   18157         }
18158         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18158         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18159                                               (Char *)"open(filename)",   18159                                               (Char *)"open(filename)",
18160                                               (PtrdiffT )here___2,   18160                                               (PtrdiffT )here___2,
18161                                               (SizeT )sizeof(char const   *));   18161                                               (SizeT )sizeof(char const   *));
18162         break;   18162         break;
18163       }   18163       }
18164       while (1) {   18164       while (1) {
18165         here___3 = layout->o_arg2;   18165         here___3 = layout->o_arg2;
18166         tmp___7 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   18166         tmp___7 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
18167                                    1L);   18167                                    1L);
18168         if (tmp___7) {   18168         if (tmp___7) {
18169     18169  
18170         } else {   18170         } else {
18171           vgPlain_assert_fail((Bool )1,   18171           vgPlain_assert_fail((Bool )1,
18172                               (Char const   *)"sizeof(int) <= sizeof(UWord)",   18172                               (Char const   *)"sizeof(int) <= sizeof(UWord)",
18173                               (Char const   *)"m_syswrap/syswrap-generic.c",   18173                               (Char const   *)"m_syswrap/syswrap-generic.c",
18174                               3607,   18174                               3607,
18175                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18175                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18176                               "");   18176                               "");
18177         }   18177         }
18178         tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);   18178         tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);
18179         if (tmp___8) {   18179         if (tmp___8) {
18180     18180  
18181         } else {   18181         } else {
18182           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18182           vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18183                               (Char const   *)"m_syswrap/syswrap-generic.c",   18183                               (Char const   *)"m_syswrap/syswrap-generic.c",
18184                               3607,   18184                               3607,
18185                               (Char const   *)"vgSysWrap_generic_sys_open_before",   18185                               (Char const   *)"vgSysWrap_generic_sys_open_before",
18186                               "");   18186                               "");
18187         }   18187         }
18188         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18188         (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18189                                               (Char *)"open(flags)",   18189                                               (Char *)"open(flags)",
18190                                               (PtrdiffT )here___3,   18190                                               (PtrdiffT )here___3,
18191                                               (SizeT )sizeof(int ));   18191                                               (SizeT )sizeof(int ));
18192         break;   18192         break;
18193       }   18193       }
18194     } else {   18194     } else {
18195     18195  
18196     }   18196     }
18197   }   18197   }
18198   while (1) {   18198   while (1) {
18199     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   18199     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
18200       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   18200       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
18201                                                    (Char *)"open(filename)",   18201                                                    (Char *)"open(filename)",
18202                                                    arrghs->arg1);   18202                                                    arrghs->arg1);
18203     } else {   18203     } else {
18204     18204  
18205     }   18205     }
18206     break;   18206     break;
18207   }   18207   }
18208   arg1s = (Char *)arrghs->arg1;   18208   arg1s = (Char *)arrghs->arg1;
18209   tmp___9 = vgPlain_getpid();   18209   tmp___9 = vgPlain_getpid();
18210   vgPlain_sprintf((Char *)(name), "/proc/%d/cmdline", tmp___9);   18210   vgPlain_sprintf((Char *)(name), "/proc/%d/cmdline", tmp___9);
18211   tmp___15 = vgModuleLocal_safe_to_deref((void *)arg1s, (SizeT )1);   18211   tmp___15 = vgModuleLocal_safe_to_deref((void *)arg1s, (SizeT )1);
18212   if (tmp___15) {   18212   if (tmp___15) {
18213     if ((unsigned int )arg1s != (unsigned int )((void *)0)) {   18213     if ((unsigned int )arg1s != (unsigned int )((void *)0)) {
18214       if ((unsigned int )(name) != (unsigned int )((void *)0)) {   18214       if ((unsigned int )(name) != (unsigned int )((void *)0)) {
18215         tmp___18 = vgPlain_strcmp((Char const   *)arg1s, (Char const   *)(name));   18215         tmp___18 = vgPlain_strcmp((Char const   *)arg1s, (Char const   *)(name));
18216         if (tmp___18 == 0) {   18216         if (tmp___18 == 0) {
18217           tmp___17 = (int )((Bool )1);   18217           tmp___17 = (int )((Bool )1);
18218         } else {   18218         } else {
18219           tmp___17 = (int )((Bool )0);   18219           tmp___17 = (int )((Bool )0);
18220         }   18220         }
18221       } else {   18221       } else {
18222         tmp___17 = (int )((Bool )0);   18222         tmp___17 = (int )((Bool )0);
18223       }   18223       }
18224     } else {   18224     } else {
18225       tmp___17 = (int )((Bool )0);   18225       tmp___17 = (int )((Bool )0);
18226     }   18226     }
18227     if (tmp___17) {   18227     if (tmp___17) {
18228       goto _L;   18228       goto _L;
18229     } else {   18229     } else {
18230       if ((unsigned int )arg1s != (unsigned int )((void *)0)) {   18230       if ((unsigned int )arg1s != (unsigned int )((void *)0)) {
18231         if ((unsigned int )"/proc/self/cmdline" != (unsigned int )((void *)0)) {   18231         if ((unsigned int )"/proc/self/cmdline" != (unsigned int )((void *)0)) {
18232           tmp___21 = vgPlain_strcmp((Char const   *)arg1s,   18232           tmp___21 = vgPlain_strcmp((Char const   *)arg1s,
18233                                     (Char const   *)"/proc/self/cmdline");   18233                                     (Char const   *)"/proc/self/cmdline");
18234           if (tmp___21 == 0) {   18234           if (tmp___21 == 0) {
18235             tmp___20 = (int )((Bool )1);   18235             tmp___20 = (int )((Bool )1);
18236           } else {   18236           } else {
18237             tmp___20 = (int )((Bool )0);   18237             tmp___20 = (int )((Bool )0);
18238           }   18238           }
18239         } else {   18239         } else {
18240           tmp___20 = (int )((Bool )0);   18240           tmp___20 = (int )((Bool )0);
18241         }   18241         }
18242       } else {   18242       } else {
18243         tmp___20 = (int )((Bool )0);   18243         tmp___20 = (int )((Bool )0);
18244       }   18244       }
18245       if (tmp___20) {   18245       if (tmp___20) {
18246         _L: /* CIL Label */   18246         _L: /* CIL Label */
18247         sres = vgPlain_dup(vgPlain_cl_cmdline_fd);   18247         sres = vgPlain_dup(vgPlain_cl_cmdline_fd);
18248         while (1) {   18248         while (1) {
18249           status->what = (enum __anonenum_what_133 )1;   18249           status->what = (enum __anonenum_what_133 )1;
18250           status->sres = sres;   18250           status->sres = sres;
18251           break;   18251           break;
18252         }   18252         }
18253         tmp___14 = sr_isError(sres);   18253         tmp___14 = sr_isError(sres);
18254         if (tmp___14) {   18254         if (tmp___14) {
18255     18255  
18256         } else {   18256         } else {
18257           tmp___10 = sr_Res(sres);   18257           tmp___10 = sr_Res(sres);
18258           tmp___11 = vgPlain_lseek((Int )tmp___10, (Off64T )0, 0);   18258           tmp___11 = vgPlain_lseek((Int )tmp___10, (Off64T )0, 0);
18259           off = (OffT )tmp___11;   18259           off = (OffT )tmp___11;
18260           if (off < 0L) {   18260           if (off < 0L) {
18261             while (1) {   18261             while (1) {
18262               wzz = (Word )24;   18262               wzz = (Word )24;
18263               if (wzz >= 0L) {   18263               if (wzz >= 0L) {
18264                 if (wzz < 10000L) {   18264                 if (wzz < 10000L) {
18265                   tmp___12 = 1;   18265                   tmp___12 = 1;
18266                 } else {   18266                 } else {
18267                   tmp___12 = 0;   18267                   tmp___12 = 0;
18268                 }   18268                 }
18269               } else {   18269               } else {
18270                 tmp___12 = 0;   18270                 tmp___12 = 0;
18271               }   18271               }
18272               tmp___13 = __builtin_expect((long )tmp___12, 1L);   18272               tmp___13 = __builtin_expect((long )tmp___12, 1L);
18273               if (tmp___13) {   18273               if (tmp___13) {
18274     18274  
18275               } else {   18275               } else {
18276                 vgPlain_assert_fail((Bool )1,   18276                 vgPlain_assert_fail((Bool )1,
18277                                     (Char const   *)"wzz >= 0 && wzz < 10000",   18277                                     (Char const   *)"wzz >= 0 && wzz < 10000",
18278                                     (Char const   *)"m_syswrap/syswrap-generic.c",   18278                                     (Char const   *)"m_syswrap/syswrap-generic.c",
18279                                     3631,   18279                                     3631,
18280                                     (Char const   *)"vgSysWrap_generic_sys_open_before",   18280                                     (Char const   *)"vgSysWrap_generic_sys_open_before",
18281                                     "");   18281                                     "");
18282               }   18282               }
18283               status->what = (enum __anonenum_what_133 )1;   18283               status->what = (enum __anonenum_what_133 )1;
18284               status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   18284               status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
18285               break;   18285               break;
18286             }   18286             }
18287           } else {   18287           } else {
18288     18288  
18289           }   18289           }
18290         }   18290         }
18291         return;   18291         return;
18292       } else {   18292       } else {
18293     18293  
18294       }   18294       }
18295     }   18295     }
18296   } else {   18296   } else {
18297     18297  
18298   }   18298   }
18299   *flags |= (unsigned long )(1 << 1);   18299   *flags |= (unsigned long )(1 << 1);
18300   return;   18300   return;
18301 }   18301 }
18302 }   18302 }
18303 void vgSysWrap_generic_sys_open_after(ThreadId tid , SyscallArgs *arrghs ,   18303 void vgSysWrap_generic_sys_open_after(ThreadId tid , SyscallArgs *arrghs ,
18304                                       SyscallStatus *status )   18304                                       SyscallStatus *status )
18305 {   18305 {
18306   Bool tmp ;   18306   Bool tmp ;
18307   int tmp___0 ;   18307   int tmp___0 ;
18308   long tmp___1 ;   18308   long tmp___1 ;
18309   UWord tmp___2 ;   18309   UWord tmp___2 ;
18310   Word wzz ;   18310   Word wzz ;
18311   int tmp___3 ;   18311   int tmp___3 ;
18312   long tmp___4 ;   18312   long tmp___4 ;
18313   UWord tmp___5 ;   18313   UWord tmp___5 ;
18314   UWord tmp___6 ;   18314   UWord tmp___6 ;
18315   Bool tmp___7 ;   18315   Bool tmp___7 ;
18316     18316  
18317   {   18317   {
18318   if ((unsigned int )status->what == 1U) {   18318   if ((unsigned int )status->what == 1U) {
18319     tmp = sr_isError(status->sres);   18319     tmp = sr_isError(status->sres);
18320     if (tmp) {   18320     if (tmp) {
18321       tmp___0 = 0;   18321       tmp___0 = 0;
18322     } else {   18322     } else {
18323       tmp___0 = 1;   18323       tmp___0 = 1;
18324     }   18324     }
18325   } else {   18325   } else {
18326     tmp___0 = 0;   18326     tmp___0 = 0;
18327   }   18327   }
18328   tmp___1 = __builtin_expect((long )tmp___0, 1L);   18328   tmp___1 = __builtin_expect((long )tmp___0, 1L);
18329   if (tmp___1) {   18329   if (tmp___1) {
18330     18330  
18331   } else {   18331   } else {
18332     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   18332     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
18333                         (Char const   *)"m_syswrap/syswrap-generic.c", 3644,   18333                         (Char const   *)"m_syswrap/syswrap-generic.c", 3644,
18334                         (Char const   *)"vgSysWrap_generic_sys_open_after", "");   18334                         (Char const   *)"vgSysWrap_generic_sys_open_after", "");
18335   }   18335   }
18336   tmp___6 = getRES(status);   18336   tmp___6 = getRES(status);
18337   tmp___7 = vgModuleLocal_fd_allowed((Int )tmp___6, (Char const   *)"open", tid,   18337   tmp___7 = vgModuleLocal_fd_allowed((Int )tmp___6, (Char const   *)"open", tid,
18338                                      (Bool )1);   18338                                      (Bool )1);
18339   if (tmp___7) {   18339   if (tmp___7) {
18340     if (vgPlain_clo_track_fds) {   18340     if (vgPlain_clo_track_fds) {
18341       tmp___5 = getRES(status);   18341       tmp___5 = getRES(status);
18342       vgModuleLocal_record_fd_open_with_given_name(tid, (Int )tmp___5,   18342       vgModuleLocal_record_fd_open_with_given_name(tid, (Int )tmp___5,
18343                                                    (char *)((Char *)arrghs->arg1));   18343                                                    (char *)((Char *)arrghs->arg1));
18344     } else {   18344     } else {
18345     18345  
18346     }   18346     }
18347   } else {   18347   } else {
18348     tmp___2 = getRES(status);   18348     tmp___2 = getRES(status);
18349     vgPlain_close((Int )tmp___2);   18349     vgPlain_close((Int )tmp___2);
18350     while (1) {   18350     while (1) {
18351       wzz = (Word )24;   18351       wzz = (Word )24;
18352       if (wzz >= 0L) {   18352       if (wzz >= 0L) {
18353         if (wzz < 10000L) {   18353         if (wzz < 10000L) {
18354           tmp___3 = 1;   18354           tmp___3 = 1;
18355         } else {   18355         } else {
18356           tmp___3 = 0;   18356           tmp___3 = 0;
18357         }   18357         }
18358       } else {   18358       } else {
18359         tmp___3 = 0;   18359         tmp___3 = 0;
18360       }   18360       }
18361       tmp___4 = __builtin_expect((long )tmp___3, 1L);   18361       tmp___4 = __builtin_expect((long )tmp___3, 1L);
18362       if (tmp___4) {   18362       if (tmp___4) {
18363     18363  
18364       } else {   18364       } else {
18365         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   18365         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
18366                             (Char const   *)"m_syswrap/syswrap-generic.c", 3647,   18366                             (Char const   *)"m_syswrap/syswrap-generic.c", 3647,
18367                             (Char const   *)"vgSysWrap_generic_sys_open_after",   18367                             (Char const   *)"vgSysWrap_generic_sys_open_after",
18368                             "");   18368                             "");
18369       }   18369       }
18370       status->what = (enum __anonenum_what_133 )1;   18370       status->what = (enum __anonenum_what_133 )1;
18371       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   18371       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
18372       break;   18372       break;
18373     }   18373     }
18374   }   18374   }
18375   return;   18375   return;
18376 }   18376 }
18377 }   18377 }
18378 void vgSysWrap_generic_sys_read_before(ThreadId tid , SyscallArgLayout *layout ,   18378 void vgSysWrap_generic_sys_read_before(ThreadId tid , SyscallArgLayout *layout ,
18379                                        SyscallArgs *arrghs ,   18379                                        SyscallArgs *arrghs ,
18380                                        SyscallStatus *status , UWord *flags )   18380                                        SyscallStatus *status , UWord *flags )
18381 {   18381 {
18382   Int here ;   18382   Int here ;
18383   long tmp ;   18383   long tmp ;
18384   long tmp___0 ;   18384   long tmp___0 ;
18385   Int here___0 ;   18385   Int here___0 ;
18386   long tmp___1 ;   18386   long tmp___1 ;
18387   long tmp___2 ;   18387   long tmp___2 ;
18388   Int here___1 ;   18388   Int here___1 ;
18389   long tmp___3 ;   18389   long tmp___3 ;
18390   long tmp___4 ;   18390   long tmp___4 ;
18391   Word wzz ;   18391   Word wzz ;
18392   int tmp___5 ;   18392   int tmp___5 ;
18393   long tmp___6 ;   18393   long tmp___6 ;
18394   Bool tmp___7 ;   18394   Bool tmp___7 ;
18395     18395  
18396   {   18396   {
18397   *flags |= (unsigned long )(1 << 1);   18397   *flags |= (unsigned long )(1 << 1);
18398   if (vgPlain_clo_trace_syscalls) {   18398   if (vgPlain_clo_trace_syscalls) {
18399     vgPlain_printf("sys_read ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,   18399     vgPlain_printf("sys_read ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,
18400                    (ULong )arrghs->arg3);   18400                    (ULong )arrghs->arg3);
18401   } else {   18401   } else {
18402     18402  
18403   }   18403   }
18404   if (vgPlain_tdict.track_pre_reg_read) {   18404   if (vgPlain_tdict.track_pre_reg_read) {
18405     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18405     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18406                                           (Char *)"(syscallno)",   18406                                           (Char *)"(syscallno)",
18407                                           (PtrdiffT )layout->o_sysno,   18407                                           (PtrdiffT )layout->o_sysno,
18408                                           (SizeT )sizeof(UWord ));   18408                                           (SizeT )sizeof(UWord ));
18409     while (1) {   18409     while (1) {
18410       here = layout->o_arg1;   18410       here = layout->o_arg1;
18411       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   18411       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
18412                              1L);   18412                              1L);
18413       if (tmp) {   18413       if (tmp) {
18414     18414  
18415       } else {   18415       } else {
18416         vgPlain_assert_fail((Bool )1,   18416         vgPlain_assert_fail((Bool )1,
18417                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   18417                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
18418                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,   18418                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,
18419                             (Char const   *)"vgSysWrap_generic_sys_read_before",   18419                             (Char const   *)"vgSysWrap_generic_sys_read_before",
18420                             "");   18420                             "");
18421       }   18421       }
18422       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   18422       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
18423       if (tmp___0) {   18423       if (tmp___0) {
18424     18424  
18425       } else {   18425       } else {
18426         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18426         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18427                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,   18427                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,
18428                             (Char const   *)"vgSysWrap_generic_sys_read_before",   18428                             (Char const   *)"vgSysWrap_generic_sys_read_before",
18429                             "");   18429                             "");
18430       }   18430       }
18431       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18431       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18432                                             (Char *)"read(fd)", (PtrdiffT )here,   18432                                             (Char *)"read(fd)", (PtrdiffT )here,
18433                                             (SizeT )sizeof(unsigned int ));   18433                                             (SizeT )sizeof(unsigned int ));
18434       break;   18434       break;
18435     }   18435     }
18436     while (1) {   18436     while (1) {
18437       here___0 = layout->o_arg2;   18437       here___0 = layout->o_arg2;
18438       tmp___1 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   18438       tmp___1 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
18439                                  1L);   18439                                  1L);
18440       if (tmp___1) {   18440       if (tmp___1) {
18441     18441  
18442       } else {   18442       } else {
18443         vgPlain_assert_fail((Bool )1,   18443         vgPlain_assert_fail((Bool )1,
18444                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   18444                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
18445                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,   18445                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,
18446                             (Char const   *)"vgSysWrap_generic_sys_read_before",   18446                             (Char const   *)"vgSysWrap_generic_sys_read_before",
18447                             "");   18447                             "");
18448       }   18448       }
18449       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   18449       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
18450       if (tmp___2) {   18450       if (tmp___2) {
18451     18451  
18452       } else {   18452       } else {
18453         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18453         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18454                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,   18454                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,
18455                             (Char const   *)"vgSysWrap_generic_sys_read_before",   18455                             (Char const   *)"vgSysWrap_generic_sys_read_before",
18456                             "");   18456                             "");
18457       }   18457       }
18458       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18458       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18459                                             (Char *)"read(buf)",   18459                                             (Char *)"read(buf)",
18460                                             (PtrdiffT )here___0,   18460                                             (PtrdiffT )here___0,
18461                                             (SizeT )sizeof(char *));   18461                                             (SizeT )sizeof(char *));
18462       break;   18462       break;
18463     }   18463     }
18464     while (1) {   18464     while (1) {
18465       here___1 = layout->o_arg3;   18465       here___1 = layout->o_arg3;
18466       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   18466       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
18467                                  1L);   18467                                  1L);
18468       if (tmp___3) {   18468       if (tmp___3) {
18469     18469  
18470       } else {   18470       } else {
18471         vgPlain_assert_fail((Bool )1,   18471         vgPlain_assert_fail((Bool )1,
18472                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   18472                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
18473                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,   18473                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,
18474                             (Char const   *)"vgSysWrap_generic_sys_read_before",   18474                             (Char const   *)"vgSysWrap_generic_sys_read_before",
18475                             "");   18475                             "");
18476       }   18476       }
18477       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   18477       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
18478       if (tmp___4) {   18478       if (tmp___4) {
18479     18479  
18480       } else {   18480       } else {
18481         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18481         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18482                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,   18482                             (Char const   *)"m_syswrap/syswrap-generic.c", 3659,
18483                             (Char const   *)"vgSysWrap_generic_sys_read_before",   18483                             (Char const   *)"vgSysWrap_generic_sys_read_before",
18484                             "");   18484                             "");
18485       }   18485       }
18486       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18486       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18487                                             (Char *)"read(count)",   18487                                             (Char *)"read(count)",
18488                                             (PtrdiffT )here___1,   18488                                             (PtrdiffT )here___1,
18489                                             (SizeT )sizeof(vki_size_t ));   18489                                             (SizeT )sizeof(vki_size_t ));
18490       break;   18490       break;
18491     }   18491     }
18492   } else {   18492   } else {
18493     18493  
18494   }   18494   }
18495   tmp___7 = vgModuleLocal_fd_allowed((Int )arrghs->arg1, (Char const   *)"read",   18495   tmp___7 = vgModuleLocal_fd_allowed((Int )arrghs->arg1, (Char const   *)"read",
18496                                      tid, (Bool )0);   18496                                      tid, (Bool )0);
18497   if (tmp___7) {   18497   if (tmp___7) {
18498     while (1) {   18498     while (1) {
18499       if (vgPlain_tdict.track_pre_mem_write) {   18499       if (vgPlain_tdict.track_pre_mem_write) {
18500         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   18500         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
18501                                                (Char *)"read(buf)",   18501                                                (Char *)"read(buf)",
18502                                                arrghs->arg2, arrghs->arg3);   18502                                                arrghs->arg2, arrghs->arg3);
18503       } else {   18503       } else {
18504     18504  
18505       }   18505       }
18506       break;   18506       break;
18507     }   18507     }
18508   } else {   18508   } else {
18509     while (1) {   18509     while (1) {
18510       wzz = (Word )9;   18510       wzz = (Word )9;
18511       if (wzz >= 0L) {   18511       if (wzz >= 0L) {
18512         if (wzz < 10000L) {   18512         if (wzz < 10000L) {
18513           tmp___5 = 1;   18513           tmp___5 = 1;
18514         } else {   18514         } else {
18515           tmp___5 = 0;   18515           tmp___5 = 0;
18516         }   18516         }
18517       } else {   18517       } else {
18518         tmp___5 = 0;   18518         tmp___5 = 0;
18519       }   18519       }
18520       tmp___6 = __builtin_expect((long )tmp___5, 1L);   18520       tmp___6 = __builtin_expect((long )tmp___5, 1L);
18521       if (tmp___6) {   18521       if (tmp___6) {
18522     18522  
18523       } else {   18523       } else {
18524         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   18524         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
18525                             (Char const   *)"m_syswrap/syswrap-generic.c", 3662,   18525                             (Char const   *)"m_syswrap/syswrap-generic.c", 3662,
18526                             (Char const   *)"vgSysWrap_generic_sys_read_before",   18526                             (Char const   *)"vgSysWrap_generic_sys_read_before",
18527                             "");   18527                             "");
18528       }   18528       }
18529       status->what = (enum __anonenum_what_133 )1;   18529       status->what = (enum __anonenum_what_133 )1;
18530       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   18530       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
18531       break;   18531       break;
18532     }   18532     }
18533   }   18533   }
18534   return;   18534   return;
18535 }   18535 }
18536 }   18536 }
18537 void vgSysWrap_generic_sys_read_after(ThreadId tid , SyscallArgs *arrghs ,   18537 void vgSysWrap_generic_sys_read_after(ThreadId tid , SyscallArgs *arrghs ,
18538                                       SyscallStatus *status )   18538                                       SyscallStatus *status )
18539 {   18539 {
18540   Bool tmp ;   18540   Bool tmp ;
18541   int tmp___0 ;   18541   int tmp___0 ;
18542   long tmp___1 ;   18542   long tmp___1 ;
18543   UWord tmp___2 ;   18543   UWord tmp___2 ;
18544     18544  
18545   {   18545   {
18546   if ((unsigned int )status->what == 1U) {   18546   if ((unsigned int )status->what == 1U) {
18547     tmp = sr_isError(status->sres);   18547     tmp = sr_isError(status->sres);
18548     if (tmp) {   18548     if (tmp) {
18549       tmp___0 = 0;   18549       tmp___0 = 0;
18550     } else {   18550     } else {
18551       tmp___0 = 1;   18551       tmp___0 = 1;
18552     }   18552     }
18553   } else {   18553   } else {
18554     tmp___0 = 0;   18554     tmp___0 = 0;
18555   }   18555   }
18556   tmp___1 = __builtin_expect((long )tmp___0, 1L);   18556   tmp___1 = __builtin_expect((long )tmp___0, 1L);
18557   if (tmp___1) {   18557   if (tmp___1) {
18558     18558  
18559   } else {   18559   } else {
18560     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   18560     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
18561                         (Char const   *)"m_syswrap/syswrap-generic.c", 3669,   18561                         (Char const   *)"m_syswrap/syswrap-generic.c", 3669,
18562                         (Char const   *)"vgSysWrap_generic_sys_read_after", "");   18562                         (Char const   *)"vgSysWrap_generic_sys_read_after", "");
18563   }   18563   }
18564   while (1) {   18564   while (1) {
18565     if (vgPlain_tdict.track_post_mem_write) {   18565     if (vgPlain_tdict.track_post_mem_write) {
18566       tmp___2 = getRES(status);   18566       tmp___2 = getRES(status);
18567       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   18567       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
18568                                               tmp___2);   18568                                               tmp___2);
18569     } else {   18569     } else {
18570     18570  
18571     }   18571     }
18572     break;   18572     break;
18573   }   18573   }
18574   return;   18574   return;
18575 }   18575 }
18576 }   18576 }
18577 void vgSysWrap_generic_sys_write_before(ThreadId tid ,   18577 void vgSysWrap_generic_sys_write_before(ThreadId tid ,
18578                                         SyscallArgLayout *layout ,   18578                                         SyscallArgLayout *layout ,
18579                                         SyscallArgs *arrghs ,   18579                                         SyscallArgs *arrghs ,
18580                                         SyscallStatus *status , UWord *flags )   18580                                         SyscallStatus *status , UWord *flags )
18581 {   18581 {
18582   Bool ok ;   18582   Bool ok ;
18583   Int here ;   18583   Int here ;
18584   long tmp ;   18584   long tmp ;
18585   long tmp___0 ;   18585   long tmp___0 ;
18586   Int here___0 ;   18586   Int here___0 ;
18587   long tmp___1 ;   18587   long tmp___1 ;
18588   long tmp___2 ;   18588   long tmp___2 ;
18589   Int here___1 ;   18589   Int here___1 ;
18590   long tmp___3 ;   18590   long tmp___3 ;
18591   long tmp___4 ;   18591   long tmp___4 ;
18592   Char *tmp___5 ;   18592   Char *tmp___5 ;
18593   Word wzz ;   18593   Word wzz ;
18594   int tmp___6 ;   18594   int tmp___6 ;
18595   long tmp___7 ;   18595   long tmp___7 ;
18596     18596  
18597   {   18597   {
18598   *flags |= (unsigned long )(1 << 1);   18598   *flags |= (unsigned long )(1 << 1);
18599   if (vgPlain_clo_trace_syscalls) {   18599   if (vgPlain_clo_trace_syscalls) {
18600     vgPlain_printf("sys_write ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,   18600     vgPlain_printf("sys_write ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,
18601                    (ULong )arrghs->arg3);   18601                    (ULong )arrghs->arg3);
18602   } else {   18602   } else {
18603     18603  
18604   }   18604   }
18605   if (vgPlain_tdict.track_pre_reg_read) {   18605   if (vgPlain_tdict.track_pre_reg_read) {
18606     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18606     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18607                                           (Char *)"(syscallno)",   18607                                           (Char *)"(syscallno)",
18608                                           (PtrdiffT )layout->o_sysno,   18608                                           (PtrdiffT )layout->o_sysno,
18609                                           (SizeT )sizeof(UWord ));   18609                                           (SizeT )sizeof(UWord ));
18610     while (1) {   18610     while (1) {
18611       here = layout->o_arg1;   18611       here = layout->o_arg1;
18612       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   18612       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
18613                              1L);   18613                              1L);
18614       if (tmp) {   18614       if (tmp) {
18615     18615  
18616       } else {   18616       } else {
18617         vgPlain_assert_fail((Bool )1,   18617         vgPlain_assert_fail((Bool )1,
18618                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   18618                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
18619                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,   18619                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,
18620                             (Char const   *)"vgSysWrap_generic_sys_write_before",   18620                             (Char const   *)"vgSysWrap_generic_sys_write_before",
18621                             "");   18621                             "");
18622       }   18622       }
18623       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   18623       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
18624       if (tmp___0) {   18624       if (tmp___0) {
18625     18625  
18626       } else {   18626       } else {
18627         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18627         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18628                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,   18628                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,
18629                             (Char const   *)"vgSysWrap_generic_sys_write_before",   18629                             (Char const   *)"vgSysWrap_generic_sys_write_before",
18630                             "");   18630                             "");
18631       }   18631       }
18632       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18632       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18633                                             (Char *)"write(fd)",   18633                                             (Char *)"write(fd)",
18634                                             (PtrdiffT )here,   18634                                             (PtrdiffT )here,
18635                                             (SizeT )sizeof(unsigned int ));   18635                                             (SizeT )sizeof(unsigned int ));
18636       break;   18636       break;
18637     }   18637     }
18638     while (1) {   18638     while (1) {
18639       here___0 = layout->o_arg2;   18639       here___0 = layout->o_arg2;
18640       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   18640       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
18641                                  1L);   18641                                  1L);
18642       if (tmp___1) {   18642       if (tmp___1) {
18643     18643  
18644       } else {   18644       } else {
18645         vgPlain_assert_fail((Bool )1,   18645         vgPlain_assert_fail((Bool )1,
18646                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   18646                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
18647                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,   18647                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,
18648                             (Char const   *)"vgSysWrap_generic_sys_write_before",   18648                             (Char const   *)"vgSysWrap_generic_sys_write_before",
18649                             "");   18649                             "");
18650       }   18650       }
18651       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   18651       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
18652       if (tmp___2) {   18652       if (tmp___2) {
18653     18653  
18654       } else {   18654       } else {
18655         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18655         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18656                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,   18656                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,
18657                             (Char const   *)"vgSysWrap_generic_sys_write_before",   18657                             (Char const   *)"vgSysWrap_generic_sys_write_before",
18658                             "");   18658                             "");
18659       }   18659       }
18660       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18660       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18661                                             (Char *)"write(buf)",   18661                                             (Char *)"write(buf)",
18662                                             (PtrdiffT )here___0,   18662                                             (PtrdiffT )here___0,
18663                                             (SizeT )sizeof(char const   *));   18663                                             (SizeT )sizeof(char const   *));
18664       break;   18664       break;
18665     }   18665     }
18666     while (1) {   18666     while (1) {
18667       here___1 = layout->o_arg3;   18667       here___1 = layout->o_arg3;
18668       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   18668       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
18669                                  1L);   18669                                  1L);
18670       if (tmp___3) {   18670       if (tmp___3) {
18671     18671  
18672       } else {   18672       } else {
18673         vgPlain_assert_fail((Bool )1,   18673         vgPlain_assert_fail((Bool )1,
18674                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   18674                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
18675                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,   18675                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,
18676                             (Char const   *)"vgSysWrap_generic_sys_write_before",   18676                             (Char const   *)"vgSysWrap_generic_sys_write_before",
18677                             "");   18677                             "");
18678       }   18678       }
18679       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   18679       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
18680       if (tmp___4) {   18680       if (tmp___4) {
18681     18681  
18682       } else {   18682       } else {
18683         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18683         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18684                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,   18684                             (Char const   *)"m_syswrap/syswrap-generic.c", 3679,
18685                             (Char const   *)"vgSysWrap_generic_sys_write_before",   18685                             (Char const   *)"vgSysWrap_generic_sys_write_before",
18686                             "");   18686                             "");
18687       }   18687       }
18688       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18688       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18689                                             (Char *)"write(count)",   18689                                             (Char *)"write(count)",
18690                                             (PtrdiffT )here___1,   18690                                             (PtrdiffT )here___1,
18691                                             (SizeT )sizeof(vki_size_t ));   18691                                             (SizeT )sizeof(vki_size_t ));
18692       break;   18692       break;
18693     }   18693     }
18694   } else {   18694   } else {
18695     18695  
18696   }   18696   }
18697   ok = vgModuleLocal_fd_allowed((Int )arrghs->arg1, (Char const   *)"write",   18697   ok = vgModuleLocal_fd_allowed((Int )arrghs->arg1, (Char const   *)"write",
18698                                 tid, (Bool )0);   18698                                 tid, (Bool )0);
18699   if (! ok) {   18699   if (! ok) {
18700     if (arrghs->arg1 == 2UL) {   18700     if (arrghs->arg1 == 2UL) {
18701       tmp___5 = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   18701       tmp___5 = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
18702                                (Char *)"enable-outer");   18702                                (Char *)"enable-outer");
18703       if (tmp___5) {   18703       if (tmp___5) {
18704         ok = (Bool )1;   18704         ok = (Bool )1;
18705       } else {   18705       } else {
18706     18706  
18707       }   18707       }
18708     } else {   18708     } else {
18709     18709  
18710     }   18710     }
18711   } else {   18711   } else {
18712     18712  
18713   }   18713   }
18714   if (! ok) {   18714   if (! ok) {
18715     while (1) {   18715     while (1) {
18716       wzz = (Word )9;   18716       wzz = (Word )9;
18717       if (wzz >= 0L) {   18717       if (wzz >= 0L) {
18718         if (wzz < 10000L) {   18718         if (wzz < 10000L) {
18719           tmp___6 = 1;   18719           tmp___6 = 1;
18720         } else {   18720         } else {
18721           tmp___6 = 0;   18721           tmp___6 = 0;
18722         }   18722         }
18723       } else {   18723       } else {
18724         tmp___6 = 0;   18724         tmp___6 = 0;
18725       }   18725       }
18726       tmp___7 = __builtin_expect((long )tmp___6, 1L);   18726       tmp___7 = __builtin_expect((long )tmp___6, 1L);
18727       if (tmp___7) {   18727       if (tmp___7) {
18728     18728  
18729       } else {   18729       } else {
18730         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   18730         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
18731                             (Char const   *)"m_syswrap/syswrap-generic.c", 3687,   18731                             (Char const   *)"m_syswrap/syswrap-generic.c", 3687,
18732                             (Char const   *)"vgSysWrap_generic_sys_write_before",   18732                             (Char const   *)"vgSysWrap_generic_sys_write_before",
18733                             "");   18733                             "");
18734       }   18734       }
18735       status->what = (enum __anonenum_what_133 )1;   18735       status->what = (enum __anonenum_what_133 )1;
18736       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   18736       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
18737       break;   18737       break;
18738     }   18738     }
18739   } else {   18739   } else {
18740     while (1) {   18740     while (1) {
18741       if (vgPlain_tdict.track_pre_mem_read) {   18741       if (vgPlain_tdict.track_pre_mem_read) {
18742         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   18742         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
18743                                               (Char *)"write(buf)",   18743                                               (Char *)"write(buf)",
18744                                               arrghs->arg2, arrghs->arg3);   18744                                               arrghs->arg2, arrghs->arg3);
18745       } else {   18745       } else {
18746     18746  
18747       }   18747       }
18748       break;   18748       break;
18749     }   18749     }
18750   }   18750   }
18751   return;   18751   return;
18752 }   18752 }
18753 }   18753 }
18754 void vgSysWrap_generic_sys_creat_before(ThreadId tid ,   18754 void vgSysWrap_generic_sys_creat_before(ThreadId tid ,
18755                                         SyscallArgLayout *layout ,   18755                                         SyscallArgLayout *layout ,
18756                                         SyscallArgs *arrghs ,   18756                                         SyscallArgs *arrghs ,
18757                                         SyscallStatus *status , UWord *flags )   18757                                         SyscallStatus *status , UWord *flags )
18758 {   18758 {
18759   Int here ;   18759   Int here ;
18760   long tmp ;   18760   long tmp ;
18761   long tmp___0 ;   18761   long tmp___0 ;
18762   Int here___0 ;   18762   Int here___0 ;
18763   long tmp___1 ;   18763   long tmp___1 ;
18764   long tmp___2 ;   18764   long tmp___2 ;
18765     18765  
18766   {   18766   {
18767   *flags |= (unsigned long )(1 << 1);   18767   *flags |= (unsigned long )(1 << 1);
18768   if (vgPlain_clo_trace_syscalls) {   18768   if (vgPlain_clo_trace_syscalls) {
18769     vgPlain_printf("sys_creat ( %#lx(%s), %ld )", arrghs->arg1,   18769     vgPlain_printf("sys_creat ( %#lx(%s), %ld )", arrghs->arg1,
18770                    (char *)arrghs->arg1, arrghs->arg2);   18770                    (char *)arrghs->arg1, arrghs->arg2);
18771   } else {   18771   } else {
18772     18772  
18773   }   18773   }
18774   if (vgPlain_tdict.track_pre_reg_read) {   18774   if (vgPlain_tdict.track_pre_reg_read) {
18775     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18775     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18776                                           (Char *)"(syscallno)",   18776                                           (Char *)"(syscallno)",
18777                                           (PtrdiffT )layout->o_sysno,   18777                                           (PtrdiffT )layout->o_sysno,
18778                                           (SizeT )sizeof(UWord ));   18778                                           (SizeT )sizeof(UWord ));
18779     while (1) {   18779     while (1) {
18780       here = layout->o_arg1;   18780       here = layout->o_arg1;
18781       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   18781       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
18782                              1L);   18782                              1L);
18783       if (tmp) {   18783       if (tmp) {
18784     18784  
18785       } else {   18785       } else {
18786         vgPlain_assert_fail((Bool )1,   18786         vgPlain_assert_fail((Bool )1,
18787                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   18787                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
18788                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,   18788                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,
18789                             (Char const   *)"vgSysWrap_generic_sys_creat_before",   18789                             (Char const   *)"vgSysWrap_generic_sys_creat_before",
18790                             "");   18790                             "");
18791       }   18791       }
18792       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   18792       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
18793       if (tmp___0) {   18793       if (tmp___0) {
18794     18794  
18795       } else {   18795       } else {
18796         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18796         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18797                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,   18797                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,
18798                             (Char const   *)"vgSysWrap_generic_sys_creat_before",   18798                             (Char const   *)"vgSysWrap_generic_sys_creat_before",
18799                             "");   18799                             "");
18800       }   18800       }
18801       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18801       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18802                                             (Char *)"creat(pathname)",   18802                                             (Char *)"creat(pathname)",
18803                                             (PtrdiffT )here,   18803                                             (PtrdiffT )here,
18804                                             (SizeT )sizeof(char const   *));   18804                                             (SizeT )sizeof(char const   *));
18805       break;   18805       break;
18806     }   18806     }
18807     while (1) {   18807     while (1) {
18808       here___0 = layout->o_arg2;   18808       here___0 = layout->o_arg2;
18809       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   18809       tmp___1 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
18810                                  1L);   18810                                  1L);
18811       if (tmp___1) {   18811       if (tmp___1) {
18812     18812  
18813       } else {   18813       } else {
18814         vgPlain_assert_fail((Bool )1,   18814         vgPlain_assert_fail((Bool )1,
18815                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   18815                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
18816                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,   18816                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,
18817                             (Char const   *)"vgSysWrap_generic_sys_creat_before",   18817                             (Char const   *)"vgSysWrap_generic_sys_creat_before",
18818                             "");   18818                             "");
18819       }   18819       }
18820       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   18820       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
18821       if (tmp___2) {   18821       if (tmp___2) {
18822     18822  
18823       } else {   18823       } else {
18824         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18824         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18825                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,   18825                             (Char const   *)"m_syswrap/syswrap-generic.c", 3696,
18826                             (Char const   *)"vgSysWrap_generic_sys_creat_before",   18826                             (Char const   *)"vgSysWrap_generic_sys_creat_before",
18827                             "");   18827                             "");
18828       }   18828       }
18829       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18829       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18830                                             (Char *)"creat(mode)",   18830                                             (Char *)"creat(mode)",
18831                                             (PtrdiffT )here___0,   18831                                             (PtrdiffT )here___0,
18832                                             (SizeT )sizeof(int ));   18832                                             (SizeT )sizeof(int ));
18833       break;   18833       break;
18834     }   18834     }
18835   } else {   18835   } else {
18836     18836  
18837   }   18837   }
18838   while (1) {   18838   while (1) {
18839     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   18839     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
18840       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   18840       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
18841                                                    (Char *)"creat(pathname)",   18841                                                    (Char *)"creat(pathname)",
18842                                                    arrghs->arg1);   18842                                                    arrghs->arg1);
18843     } else {   18843     } else {
18844     18844  
18845     }   18845     }
18846     break;   18846     break;
18847   }   18847   }
18848   return;   18848   return;
18849 }   18849 }
18850 }   18850 }
18851 void vgSysWrap_generic_sys_creat_after(ThreadId tid , SyscallArgs *arrghs ,   18851 void vgSysWrap_generic_sys_creat_after(ThreadId tid , SyscallArgs *arrghs ,
18852                                        SyscallStatus *status )   18852                                        SyscallStatus *status )
18853 {   18853 {
18854   Bool tmp ;   18854   Bool tmp ;
18855   int tmp___0 ;   18855   int tmp___0 ;
18856   long tmp___1 ;   18856   long tmp___1 ;
18857   UWord tmp___2 ;   18857   UWord tmp___2 ;
18858   Word wzz ;   18858   Word wzz ;
18859   int tmp___3 ;   18859   int tmp___3 ;
18860   long tmp___4 ;   18860   long tmp___4 ;
18861   UWord tmp___5 ;   18861   UWord tmp___5 ;
18862   UWord tmp___6 ;   18862   UWord tmp___6 ;
18863   Bool tmp___7 ;   18863   Bool tmp___7 ;
18864     18864  
18865   {   18865   {
18866   if ((unsigned int )status->what == 1U) {   18866   if ((unsigned int )status->what == 1U) {
18867     tmp = sr_isError(status->sres);   18867     tmp = sr_isError(status->sres);
18868     if (tmp) {   18868     if (tmp) {
18869       tmp___0 = 0;   18869       tmp___0 = 0;
18870     } else {   18870     } else {
18871       tmp___0 = 1;   18871       tmp___0 = 1;
18872     }   18872     }
18873   } else {   18873   } else {
18874     tmp___0 = 0;   18874     tmp___0 = 0;
18875   }   18875   }
18876   tmp___1 = __builtin_expect((long )tmp___0, 1L);   18876   tmp___1 = __builtin_expect((long )tmp___0, 1L);
18877   if (tmp___1) {   18877   if (tmp___1) {
18878     18878  
18879   } else {   18879   } else {
18880     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   18880     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
18881                         (Char const   *)"m_syswrap/syswrap-generic.c", 3702,   18881                         (Char const   *)"m_syswrap/syswrap-generic.c", 3702,
18882                         (Char const   *)"vgSysWrap_generic_sys_creat_after", "");   18882                         (Char const   *)"vgSysWrap_generic_sys_creat_after", "");
18883   }   18883   }
18884   tmp___6 = getRES(status);   18884   tmp___6 = getRES(status);
18885   tmp___7 = vgModuleLocal_fd_allowed((Int )tmp___6, (Char const   *)"creat",   18885   tmp___7 = vgModuleLocal_fd_allowed((Int )tmp___6, (Char const   *)"creat",
18886                                      tid, (Bool )1);   18886                                      tid, (Bool )1);
18887   if (tmp___7) {   18887   if (tmp___7) {
18888     if (vgPlain_clo_track_fds) {   18888     if (vgPlain_clo_track_fds) {
18889       tmp___5 = getRES(status);   18889       tmp___5 = getRES(status);
18890       vgModuleLocal_record_fd_open_with_given_name(tid, (Int )tmp___5,   18890       vgModuleLocal_record_fd_open_with_given_name(tid, (Int )tmp___5,
18891                                                    (char *)((Char *)arrghs->arg1));   18891                                                    (char *)((Char *)arrghs->arg1));
18892     } else {   18892     } else {
18893     18893  
18894     }   18894     }
18895   } else {   18895   } else {
18896     tmp___2 = getRES(status);   18896     tmp___2 = getRES(status);
18897     vgPlain_close((Int )tmp___2);   18897     vgPlain_close((Int )tmp___2);
18898     while (1) {   18898     while (1) {
18899       wzz = (Word )24;   18899       wzz = (Word )24;
18900       if (wzz >= 0L) {   18900       if (wzz >= 0L) {
18901         if (wzz < 10000L) {   18901         if (wzz < 10000L) {
18902           tmp___3 = 1;   18902           tmp___3 = 1;
18903         } else {   18903         } else {
18904           tmp___3 = 0;   18904           tmp___3 = 0;
18905         }   18905         }
18906       } else {   18906       } else {
18907         tmp___3 = 0;   18907         tmp___3 = 0;
18908       }   18908       }
18909       tmp___4 = __builtin_expect((long )tmp___3, 1L);   18909       tmp___4 = __builtin_expect((long )tmp___3, 1L);
18910       if (tmp___4) {   18910       if (tmp___4) {
18911     18911  
18912       } else {   18912       } else {
18913         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   18913         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
18914                             (Char const   *)"m_syswrap/syswrap-generic.c", 3705,   18914                             (Char const   *)"m_syswrap/syswrap-generic.c", 3705,
18915                             (Char const   *)"vgSysWrap_generic_sys_creat_after",   18915                             (Char const   *)"vgSysWrap_generic_sys_creat_after",
18916                             "");   18916                             "");
18917       }   18917       }
18918       status->what = (enum __anonenum_what_133 )1;   18918       status->what = (enum __anonenum_what_133 )1;
18919       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   18919       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
18920       break;   18920       break;
18921     }   18921     }
18922   }   18922   }
18923   return;   18923   return;
18924 }   18924 }
18925 }   18925 }
18926 void vgSysWrap_generic_sys_poll_before(ThreadId tid , SyscallArgLayout *layout ,   18926 void vgSysWrap_generic_sys_poll_before(ThreadId tid , SyscallArgLayout *layout ,
18927                                        SyscallArgs *arrghs ,   18927                                        SyscallArgs *arrghs ,
18928                                        SyscallStatus *status , UWord *flags )   18928                                        SyscallStatus *status , UWord *flags )
18929 {   18929 {
18930   UInt i ;   18930   UInt i ;
18931   struct vki_pollfd *ufds ;   18931   struct vki_pollfd *ufds ;
18932   Int here ;   18932   Int here ;
18933   long tmp ;   18933   long tmp ;
18934   long tmp___0 ;   18934   long tmp___0 ;
18935   Int here___0 ;   18935   Int here___0 ;
18936   long tmp___1 ;   18936   long tmp___1 ;
18937   long tmp___2 ;   18937   long tmp___2 ;
18938   Int here___1 ;   18938   Int here___1 ;
18939   long tmp___3 ;   18939   long tmp___3 ;
18940   long tmp___4 ;   18940   long tmp___4 ;
18941     18941  
18942   {   18942   {
18943   ufds = (struct vki_pollfd *)arrghs->arg1;   18943   ufds = (struct vki_pollfd *)arrghs->arg1;
18944   *flags |= (unsigned long )(1 << 1);   18944   *flags |= (unsigned long )(1 << 1);
18945   if (vgPlain_clo_trace_syscalls) {   18945   if (vgPlain_clo_trace_syscalls) {
18946     vgPlain_printf("sys_poll ( %#lx, %ld, %ld )\n", arrghs->arg1, arrghs->arg2,   18946     vgPlain_printf("sys_poll ( %#lx, %ld, %ld )\n", arrghs->arg1, arrghs->arg2,
18947                    arrghs->arg3);   18947                    arrghs->arg3);
18948   } else {   18948   } else {
18949     18949  
18950   }   18950   }
18951   if (vgPlain_tdict.track_pre_reg_read) {   18951   if (vgPlain_tdict.track_pre_reg_read) {
18952     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18952     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18953                                           (Char *)"(syscallno)",   18953                                           (Char *)"(syscallno)",
18954                                           (PtrdiffT )layout->o_sysno,   18954                                           (PtrdiffT )layout->o_sysno,
18955                                           (SizeT )sizeof(UWord ));   18955                                           (SizeT )sizeof(UWord ));
18956     while (1) {   18956     while (1) {
18957       here = layout->o_arg1;   18957       here = layout->o_arg1;
18958       tmp = __builtin_expect((long )(! (! (sizeof(struct vki_pollfd *) <= sizeof(UWord )))),   18958       tmp = __builtin_expect((long )(! (! (sizeof(struct vki_pollfd *) <= sizeof(UWord )))),
18959                              1L);   18959                              1L);
18960       if (tmp) {   18960       if (tmp) {
18961     18961  
18962       } else {   18962       } else {
18963         vgPlain_assert_fail((Bool )1,   18963         vgPlain_assert_fail((Bool )1,
18964                             (Char const   *)"sizeof(struct vki_pollfd *) <= sizeof(UWord)",   18964                             (Char const   *)"sizeof(struct vki_pollfd *) <= sizeof(UWord)",
18965                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,   18965                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,
18966                             (Char const   *)"vgSysWrap_generic_sys_poll_before",   18966                             (Char const   *)"vgSysWrap_generic_sys_poll_before",
18967                             "");   18967                             "");
18968       }   18968       }
18969       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   18969       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
18970       if (tmp___0) {   18970       if (tmp___0) {
18971     18971  
18972       } else {   18972       } else {
18973         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   18973         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
18974                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,   18974                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,
18975                             (Char const   *)"vgSysWrap_generic_sys_poll_before",   18975                             (Char const   *)"vgSysWrap_generic_sys_poll_before",
18976                             "");   18976                             "");
18977       }   18977       }
18978       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   18978       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
18979                                             (Char *)"poll(ufds)",   18979                                             (Char *)"poll(ufds)",
18980                                             (PtrdiffT )here,   18980                                             (PtrdiffT )here,
18981                                             (SizeT )sizeof(struct vki_pollfd *));   18981                                             (SizeT )sizeof(struct vki_pollfd *));
18982       break;   18982       break;
18983     }   18983     }
18984     while (1) {   18984     while (1) {
18985       here___0 = layout->o_arg2;   18985       here___0 = layout->o_arg2;
18986       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   18986       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
18987                                  1L);   18987                                  1L);
18988       if (tmp___1) {   18988       if (tmp___1) {
18989     18989  
18990       } else {   18990       } else {
18991         vgPlain_assert_fail((Bool )1,   18991         vgPlain_assert_fail((Bool )1,
18992                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   18992                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
18993                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,   18993                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,
18994                             (Char const   *)"vgSysWrap_generic_sys_poll_before",   18994                             (Char const   *)"vgSysWrap_generic_sys_poll_before",
18995                             "");   18995                             "");
18996       }   18996       }
18997       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   18997       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
18998       if (tmp___2) {   18998       if (tmp___2) {
18999     18999  
19000       } else {   19000       } else {
19001         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19001         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19002                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,   19002                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,
19003                             (Char const   *)"vgSysWrap_generic_sys_poll_before",   19003                             (Char const   *)"vgSysWrap_generic_sys_poll_before",
19004                             "");   19004                             "");
19005       }   19005       }
19006       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19006       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19007                                             (Char *)"poll(nfds)",   19007                                             (Char *)"poll(nfds)",
19008                                             (PtrdiffT )here___0,   19008                                             (PtrdiffT )here___0,
19009                                             (SizeT )sizeof(unsigned int ));   19009                                             (SizeT )sizeof(unsigned int ));
19010       break;   19010       break;
19011     }   19011     }
19012     while (1) {   19012     while (1) {
19013       here___1 = layout->o_arg3;   19013       here___1 = layout->o_arg3;
19014       tmp___3 = __builtin_expect((long )(! (! (sizeof(long ) <= sizeof(UWord )))),   19014       tmp___3 = __builtin_expect((long )(! (! (sizeof(long ) <= sizeof(UWord )))),
19015                                  1L);   19015                                  1L);
19016       if (tmp___3) {   19016       if (tmp___3) {
19017     19017  
19018       } else {   19018       } else {
19019         vgPlain_assert_fail((Bool )1,   19019         vgPlain_assert_fail((Bool )1,
19020                             (Char const   *)"sizeof(long) <= sizeof(UWord)",   19020                             (Char const   *)"sizeof(long) <= sizeof(UWord)",
19021                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,   19021                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,
19022                             (Char const   *)"vgSysWrap_generic_sys_poll_before",   19022                             (Char const   *)"vgSysWrap_generic_sys_poll_before",
19023                             "");   19023                             "");
19024       }   19024       }
19025       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   19025       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
19026       if (tmp___4) {   19026       if (tmp___4) {
19027     19027  
19028       } else {   19028       } else {
19029         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19029         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19030                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,   19030                             (Char const   *)"m_syswrap/syswrap-generic.c", 3726,
19031                             (Char const   *)"vgSysWrap_generic_sys_poll_before",   19031                             (Char const   *)"vgSysWrap_generic_sys_poll_before",
19032                             "");   19032                             "");
19033       }   19033       }
19034       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19034       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19035                                             (Char *)"poll(timeout)",   19035                                             (Char *)"poll(timeout)",
19036                                             (PtrdiffT )here___1,   19036                                             (PtrdiffT )here___1,
19037                                             (SizeT )sizeof(long ));   19037                                             (SizeT )sizeof(long ));
19038       break;   19038       break;
19039     }   19039     }
19040   } else {   19040   } else {
19041     19041  
19042   }   19042   }
19043   i = (UInt )0;   19043   i = (UInt )0;
19044   while ((UWord )i < arrghs->arg2) {   19044   while ((UWord )i < arrghs->arg2) {
19045     while (1) {   19045     while (1) {
19046       if (vgPlain_tdict.track_pre_mem_read) {   19046       if (vgPlain_tdict.track_pre_mem_read) {
19047         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   19047         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
19048                                               (Char *)"poll(ufds.fd)",   19048                                               (Char *)"poll(ufds.fd)",
19049                                               (Addr )(& (ufds + i)->fd),   19049                                               (Addr )(& (ufds + i)->fd),
19050                                               (SizeT )sizeof((ufds + i)->fd));   19050                                               (SizeT )sizeof((ufds + i)->fd));
19051       } else {   19051       } else {
19052     19052  
19053       }   19053       }
19054       break;   19054       break;
19055     }   19055     }
19056     while (1) {   19056     while (1) {
19057       if (vgPlain_tdict.track_pre_mem_read) {   19057       if (vgPlain_tdict.track_pre_mem_read) {
19058         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   19058         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
19059                                               (Char *)"poll(ufds.events)",   19059                                               (Char *)"poll(ufds.events)",
19060                                               (Addr )(& (ufds + i)->events),   19060                                               (Addr )(& (ufds + i)->events),
19061                                               (SizeT )sizeof((ufds + i)->events));   19061                                               (SizeT )sizeof((ufds + i)->events));
19062       } else {   19062       } else {
19063     19063  
19064       }   19064       }
19065       break;   19065       break;
19066     }   19066     }
19067     while (1) {   19067     while (1) {
19068       if (vgPlain_tdict.track_pre_mem_write) {   19068       if (vgPlain_tdict.track_pre_mem_write) {
19069         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   19069         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
19070                                                (Char *)"poll(ufds.reventss)",   19070                                                (Char *)"poll(ufds.reventss)",
19071                                                (Addr )(& (ufds + i)->revents),   19071                                                (Addr )(& (ufds + i)->revents),
19072                                                (SizeT )sizeof((ufds + i)->revents));   19072                                                (SizeT )sizeof((ufds + i)->revents));
19073       } else {   19073       } else {
19074     19074  
19075       }   19075       }
19076       break;   19076       break;
19077     }   19077     }
19078     i ++;   19078     i ++;
19079   }   19079   }
19080   return;   19080   return;
19081 }   19081 }
19082 }   19082 }
19083 void vgSysWrap_generic_sys_poll_after(ThreadId tid , SyscallArgs *arrghs ,   19083 void vgSysWrap_generic_sys_poll_after(ThreadId tid , SyscallArgs *arrghs ,
19084                                       SyscallStatus *status )   19084                                       SyscallStatus *status )
19085 {   19085 {
19086   UInt i ;   19086   UInt i ;
19087   struct vki_pollfd *ufds ;   19087   struct vki_pollfd *ufds ;
19088   UWord tmp ;   19088   UWord tmp ;
19089     19089  
19090   {   19090   {
19091   tmp = getRES(status);   19091   tmp = getRES(status);
19092   if (tmp >= 0UL) {   19092   if (tmp >= 0UL) {
19093     ufds = (struct vki_pollfd *)arrghs->arg1;   19093     ufds = (struct vki_pollfd *)arrghs->arg1;
19094     i = (UInt )0;   19094     i = (UInt )0;
19095     while ((UWord )i < arrghs->arg2) {   19095     while ((UWord )i < arrghs->arg2) {
19096       while (1) {   19096       while (1) {
19097         if (vgPlain_tdict.track_post_mem_write) {   19097         if (vgPlain_tdict.track_post_mem_write) {
19098           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   19098           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
19099                                                   (Addr )(& (ufds + i)->revents),   19099                                                   (Addr )(& (ufds + i)->revents),
19100                                                   (SizeT )sizeof((ufds + i)->revents));   19100                                                   (SizeT )sizeof((ufds + i)->revents));
19101         } else {   19101         } else {
19102     19102  
19103         }   19103         }
19104         break;   19104         break;
19105       }   19105       }
19106       i ++;   19106       i ++;
19107     }   19107     }
19108   } else {   19108   } else {
19109     19109  
19110   }   19110   }
19111   return;   19111   return;
19112 }   19112 }
19113 }   19113 }
19114 void vgSysWrap_generic_sys_readlink_before(ThreadId tid ,   19114 void vgSysWrap_generic_sys_readlink_before(ThreadId tid ,
19115                                            SyscallArgLayout *layout ,   19115                                            SyscallArgLayout *layout ,
19116                                            SyscallArgs *arrghs ,   19116                                            SyscallArgs *arrghs ,
19117                                            SyscallStatus *status , UWord *flags )   19117                                            SyscallStatus *status , UWord *flags )
19118 {   19118 {
19119   Char *tmp ;   19119   Char *tmp ;
19120   Word saved ;   19120   Word saved ;
19121   Int here ;   19121   Int here ;
19122   long tmp___0 ;   19122   long tmp___0 ;
19123   long tmp___1 ;   19123   long tmp___1 ;
19124   Int here___0 ;   19124   Int here___0 ;
19125   long tmp___2 ;   19125   long tmp___2 ;
19126   long tmp___3 ;   19126   long tmp___3 ;
19127   Int here___1 ;   19127   Int here___1 ;
19128   long tmp___4 ;   19128   long tmp___4 ;
19129   long tmp___5 ;   19129   long tmp___5 ;
19130   HChar name[25] ;   19130   HChar name[25] ;
19131   Char *arg1s ;   19131   Char *arg1s ;
19132   Int tmp___6 ;   19132   Int tmp___6 ;
19133   Bool tmp___7 ;   19133   Bool tmp___7 ;
19134   Int tmp___8 ;   19134   Int tmp___8 ;
19135   int tmp___9 ;   19135   int tmp___9 ;
19136   Int tmp___10 ;   19136   Int tmp___10 ;
19137   Int tmp___11 ;   19137   Int tmp___11 ;
19138   int tmp___12 ;   19138   int tmp___12 ;
19139   Int tmp___13 ;   19139   Int tmp___13 ;
19140   UWord tmp___14 ;   19140   UWord tmp___14 ;
19141   Bool tmp___15 ;   19141   Bool tmp___15 ;
19142   UWord tmp___16 ;   19142   UWord tmp___16 ;
19143     19143  
19144   {   19144   {
19145   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   19145   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
19146                        (Char *)"fuse-compatible");   19146                        (Char *)"fuse-compatible");
19147   if (tmp) {   19147   if (tmp) {
19148     *flags |= (unsigned long )(1 << 1);   19148     *flags |= (unsigned long )(1 << 1);
19149   } else {   19149   } else {
19150     19150  
19151   }   19151   }
19152   saved = arrghs->sysno;   19152   saved = arrghs->sysno;
19153   if (vgPlain_clo_trace_syscalls) {   19153   if (vgPlain_clo_trace_syscalls) {
19154     vgPlain_printf("sys_readlink ( %#lx(%s), %#lx, %llu )", arrghs->arg1,   19154     vgPlain_printf("sys_readlink ( %#lx(%s), %#lx, %llu )", arrghs->arg1,
19155                    (char *)arrghs->arg1, arrghs->arg2, (ULong )arrghs->arg3);   19155                    (char *)arrghs->arg1, arrghs->arg2, (ULong )arrghs->arg3);
19156   } else {   19156   } else {
19157     19157  
19158   }   19158   }
19159   if (vgPlain_tdict.track_pre_reg_read) {   19159   if (vgPlain_tdict.track_pre_reg_read) {
19160     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19160     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19161                                           (Char *)"(syscallno)",   19161                                           (Char *)"(syscallno)",
19162                                           (PtrdiffT )layout->o_sysno,   19162                                           (PtrdiffT )layout->o_sysno,
19163                                           (SizeT )sizeof(UWord ));   19163                                           (SizeT )sizeof(UWord ));
19164     while (1) {   19164     while (1) {
19165       here = layout->o_arg1;   19165       here = layout->o_arg1;
19166       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   19166       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
19167                                  1L);   19167                                  1L);
19168       if (tmp___0) {   19168       if (tmp___0) {
19169     19169  
19170       } else {   19170       } else {
19171         vgPlain_assert_fail((Bool )1,   19171         vgPlain_assert_fail((Bool )1,
19172                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   19172                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
19173                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,   19173                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,
19174                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",   19174                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",
19175                             "");   19175                             "");
19176       }   19176       }
19177       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   19177       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
19178       if (tmp___1) {   19178       if (tmp___1) {
19179     19179  
19180       } else {   19180       } else {
19181         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19181         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19182                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,   19182                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,
19183                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",   19183                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",
19184                             "");   19184                             "");
19185       }   19185       }
19186       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19186       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19187                                             (Char *)"readlink(path)",   19187                                             (Char *)"readlink(path)",
19188                                             (PtrdiffT )here,   19188                                             (PtrdiffT )here,
19189                                             (SizeT )sizeof(char const   *));   19189                                             (SizeT )sizeof(char const   *));
19190       break;   19190       break;
19191     }   19191     }
19192     while (1) {   19192     while (1) {
19193       here___0 = layout->o_arg2;   19193       here___0 = layout->o_arg2;
19194       tmp___2 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   19194       tmp___2 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
19195                                  1L);   19195                                  1L);
19196       if (tmp___2) {   19196       if (tmp___2) {
19197     19197  
19198       } else {   19198       } else {
19199         vgPlain_assert_fail((Bool )1,   19199         vgPlain_assert_fail((Bool )1,
19200                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   19200                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
19201                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,   19201                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,
19202                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",   19202                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",
19203                             "");   19203                             "");
19204       }   19204       }
19205       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   19205       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
19206       if (tmp___3) {   19206       if (tmp___3) {
19207     19207  
19208       } else {   19208       } else {
19209         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19209         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19210                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,   19210                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,
19211                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",   19211                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",
19212                             "");   19212                             "");
19213       }   19213       }
19214       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19214       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19215                                             (Char *)"readlink(buf)",   19215                                             (Char *)"readlink(buf)",
19216                                             (PtrdiffT )here___0,   19216                                             (PtrdiffT )here___0,
19217                                             (SizeT )sizeof(char *));   19217                                             (SizeT )sizeof(char *));
19218       break;   19218       break;
19219     }   19219     }
19220     while (1) {   19220     while (1) {
19221       here___1 = layout->o_arg3;   19221       here___1 = layout->o_arg3;
19222       tmp___4 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   19222       tmp___4 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
19223                                  1L);   19223                                  1L);
19224       if (tmp___4) {   19224       if (tmp___4) {
19225     19225  
19226       } else {   19226       } else {
19227         vgPlain_assert_fail((Bool )1,   19227         vgPlain_assert_fail((Bool )1,
19228                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   19228                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
19229                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,   19229                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,
19230                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",   19230                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",
19231                             "");   19231                             "");
19232       }   19232       }
19233       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   19233       tmp___5 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
19234       if (tmp___5) {   19234       if (tmp___5) {
19235     19235  
19236       } else {   19236       } else {
19237         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19237         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19238                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,   19238                             (Char const   *)"m_syswrap/syswrap-generic.c", 3755,
19239                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",   19239                             (Char const   *)"vgSysWrap_generic_sys_readlink_before",
19240                             "");   19240                             "");
19241       }   19241       }
19242       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19242       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19243                                             (Char *)"readlink(bufsiz)",   19243                                             (Char *)"readlink(bufsiz)",
19244                                             (PtrdiffT )here___1,   19244                                             (PtrdiffT )here___1,
19245                                             (SizeT )sizeof(int ));   19245                                             (SizeT )sizeof(int ));
19246       break;   19246       break;
19247     }   19247     }
19248   } else {   19248   } else {
19249     19249  
19250   }   19250   }
19251   while (1) {   19251   while (1) {
19252     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   19252     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
19253       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   19253       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
19254                                                    (Char *)"readlink(path)",   19254                                                    (Char *)"readlink(path)",
19255                                                    arrghs->arg1);   19255                                                    arrghs->arg1);
19256     } else {   19256     } else {
19257     19257  
19258     }   19258     }
19259     break;   19259     break;
19260   }   19260   }
19261   while (1) {   19261   while (1) {
19262     if (vgPlain_tdict.track_pre_mem_write) {   19262     if (vgPlain_tdict.track_pre_mem_write) {
19263       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   19263       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
19264                                              (Char *)"readlink(buf)",   19264                                              (Char *)"readlink(buf)",
19265                                              arrghs->arg2, arrghs->arg3);   19265                                              arrghs->arg2, arrghs->arg3);
19266     } else {   19266     } else {
19267     19267  
19268     }   19268     }
19269     break;   19269     break;
19270   }   19270   }
19271   arg1s = (Char *)arrghs->arg1;   19271   arg1s = (Char *)arrghs->arg1;
19272   tmp___6 = vgPlain_getpid();   19272   tmp___6 = vgPlain_getpid();
19273   vgPlain_sprintf((Char *)(name), "/proc/%d/exe", tmp___6);   19273   vgPlain_sprintf((Char *)(name), "/proc/%d/exe", tmp___6);
19274   tmp___7 = vgModuleLocal_safe_to_deref((void *)arg1s, (SizeT )1);   19274   tmp___7 = vgModuleLocal_safe_to_deref((void *)arg1s, (SizeT )1);
19275   if (tmp___7) {   19275   if (tmp___7) {
19276     if ((unsigned int )arg1s != (unsigned int )((void *)0)) {   19276     if ((unsigned int )arg1s != (unsigned int )((void *)0)) {
19277       if ((unsigned int )(name) != (unsigned int )((void *)0)) {   19277       if ((unsigned int )(name) != (unsigned int )((void *)0)) {
19278         tmp___10 = vgPlain_strcmp((Char const   *)arg1s, (Char const   *)(name));   19278         tmp___10 = vgPlain_strcmp((Char const   *)arg1s, (Char const   *)(name));
19279         if (tmp___10 == 0) {   19279         if (tmp___10 == 0) {
19280           tmp___9 = (int )((Bool )1);   19280           tmp___9 = (int )((Bool )1);
19281         } else {   19281         } else {
19282           tmp___9 = (int )((Bool )0);   19282           tmp___9 = (int )((Bool )0);
19283         }   19283         }
19284       } else {   19284       } else {
19285         tmp___9 = (int )((Bool )0);   19285         tmp___9 = (int )((Bool )0);
19286       }   19286       }
19287     } else {   19287     } else {
19288       tmp___9 = (int )((Bool )0);   19288       tmp___9 = (int )((Bool )0);
19289     }   19289     }
19290     if (tmp___9) {   19290     if (tmp___9) {
19291       goto _L___0;   19291       goto _L___0;
19292     } else {   19292     } else {
19293       if ((unsigned int )arg1s != (unsigned int )((void *)0)) {   19293       if ((unsigned int )arg1s != (unsigned int )((void *)0)) {
19294         if ((unsigned int )"/proc/self/exe" != (unsigned int )((void *)0)) {   19294         if ((unsigned int )"/proc/self/exe" != (unsigned int )((void *)0)) {
19295           tmp___13 = vgPlain_strcmp((Char const   *)arg1s,   19295           tmp___13 = vgPlain_strcmp((Char const   *)arg1s,
19296                                     (Char const   *)"/proc/self/exe");   19296                                     (Char const   *)"/proc/self/exe");
19297           if (tmp___13 == 0) {   19297           if (tmp___13 == 0) {
19298             tmp___12 = (int )((Bool )1);   19298             tmp___12 = (int )((Bool )1);
19299           } else {   19299           } else {
19300             tmp___12 = (int )((Bool )0);   19300             tmp___12 = (int )((Bool )0);
19301           }   19301           }
19302         } else {   19302         } else {
19303           tmp___12 = (int )((Bool )0);   19303           tmp___12 = (int )((Bool )0);
19304         }   19304         }
19305       } else {   19305       } else {
19306         tmp___12 = (int )((Bool )0);   19306         tmp___12 = (int )((Bool )0);
19307       }   19307       }
19308       if (tmp___12) {   19308       if (tmp___12) {
19309         _L___0: /* CIL Label */   19309         _L___0: /* CIL Label */
19310         vgPlain_sprintf((Char *)(name), "/proc/self/fd/%d", vgPlain_cl_exec_fd);   19310         vgPlain_sprintf((Char *)(name), "/proc/self/fd/%d", vgPlain_cl_exec_fd);
19311         while (1) {   19311         while (1) {
19312           status->what = (enum __anonenum_what_133 )1;   19312           status->what = (enum __anonenum_what_133 )1;
19313           status->sres = vgPlain_do_syscall((UWord )saved, (UWord )(name),   19313           status->sres = vgPlain_do_syscall((UWord )saved, (UWord )(name),
19314                                             arrghs->arg2, arrghs->arg3,   19314                                             arrghs->arg2, arrghs->arg3,
19315                                             (UWord )0, (UWord )0, (UWord )0,   19315                                             (UWord )0, (UWord )0, (UWord )0,
19316                                             (UWord )0, (UWord )0);   19316                                             (UWord )0, (UWord )0);
19317           break;   19317           break;
19318         }   19318         }
19319       } else {   19319       } else {
19320         goto _L;   19320         goto _L;
19321       }   19321       }
19322     }   19322     }
19323   } else {   19323   } else {
19324     _L: /* CIL Label */   19324     _L: /* CIL Label */
19325     while (1) {   19325     while (1) {
19326       status->what = (enum __anonenum_what_133 )1;   19326       status->what = (enum __anonenum_what_133 )1;
19327       status->sres = vgPlain_do_syscall((UWord )saved, arrghs->arg1,   19327       status->sres = vgPlain_do_syscall((UWord )saved, arrghs->arg1,
19328                                         arrghs->arg2, arrghs->arg3, (UWord )0,   19328                                         arrghs->arg2, arrghs->arg3, (UWord )0,
19329                                         (UWord )0, (UWord )0, (UWord )0,   19329                                         (UWord )0, (UWord )0, (UWord )0,
19330                                         (UWord )0);   19330                                         (UWord )0);
19331       break;   19331       break;
19332     }   19332     }
19333   }   19333   }
19334   if ((unsigned int )status->what == 1U) {   19334   if ((unsigned int )status->what == 1U) {
19335     tmp___15 = sr_isError(status->sres);   19335     tmp___15 = sr_isError(status->sres);
19336     if (tmp___15) {   19336     if (tmp___15) {
19337     19337  
19338     } else {   19338     } else {
19339       tmp___16 = getRES(status);   19339       tmp___16 = getRES(status);
19340       if (tmp___16 > 0UL) {   19340       if (tmp___16 > 0UL) {
19341         while (1) {   19341         while (1) {
19342           if (vgPlain_tdict.track_post_mem_write) {   19342           if (vgPlain_tdict.track_post_mem_write) {
19343             tmp___14 = getRES(status);   19343             tmp___14 = getRES(status);
19344             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   19344             (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
19345                                                     arrghs->arg2, tmp___14);   19345                                                     arrghs->arg2, tmp___14);
19346           } else {   19346           } else {
19347     19347  
19348           }   19348           }
19349           break;   19349           break;
19350         }   19350         }
19351       } else {   19351       } else {
19352     19352  
19353       }   19353       }
19354     }   19354     }
19355   } else {   19355   } else {
19356     19356  
19357   }   19357   }
19358   return;   19358   return;
19359 }   19359 }
19360 }   19360 }
19361 void vgSysWrap_generic_sys_readv_before(ThreadId tid ,   19361 void vgSysWrap_generic_sys_readv_before(ThreadId tid ,
19362                                         SyscallArgLayout *layout ,   19362                                         SyscallArgLayout *layout ,
19363                                         SyscallArgs *arrghs ,   19363                                         SyscallArgs *arrghs ,
19364                                         SyscallStatus *status , UWord *flags )   19364                                         SyscallStatus *status , UWord *flags )
19365 {   19365 {
19366   Int i ;   19366   Int i ;
19367   struct vki_iovec *vec ;   19367   struct vki_iovec *vec ;
19368   Int here ;   19368   Int here ;
19369   long tmp ;   19369   long tmp ;
19370   long tmp___0 ;   19370   long tmp___0 ;
19371   Int here___0 ;   19371   Int here___0 ;
19372   long tmp___1 ;   19372   long tmp___1 ;
19373   long tmp___2 ;   19373   long tmp___2 ;
19374   Int here___1 ;   19374   Int here___1 ;
19375   long tmp___3 ;   19375   long tmp___3 ;
19376   long tmp___4 ;   19376   long tmp___4 ;
19377   Word wzz ;   19377   Word wzz ;
19378   int tmp___5 ;   19378   int tmp___5 ;
19379   long tmp___6 ;   19379   long tmp___6 ;
19380   Bool tmp___7 ;   19380   Bool tmp___7 ;
19381     19381  
19382   {   19382   {
19383   *flags |= (unsigned long )(1 << 1);   19383   *flags |= (unsigned long )(1 << 1);
19384   if (vgPlain_clo_trace_syscalls) {   19384   if (vgPlain_clo_trace_syscalls) {
19385     vgPlain_printf("sys_readv ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,   19385     vgPlain_printf("sys_readv ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,
19386                    (ULong )arrghs->arg3);   19386                    (ULong )arrghs->arg3);
19387   } else {   19387   } else {
19388     19388  
19389   }   19389   }
19390   if (vgPlain_tdict.track_pre_reg_read) {   19390   if (vgPlain_tdict.track_pre_reg_read) {
19391     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19391     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19392                                           (Char *)"(syscallno)",   19392                                           (Char *)"(syscallno)",
19393                                           (PtrdiffT )layout->o_sysno,   19393                                           (PtrdiffT )layout->o_sysno,
19394                                           (SizeT )sizeof(UWord ));   19394                                           (SizeT )sizeof(UWord ));
19395     while (1) {   19395     while (1) {
19396       here = layout->o_arg1;   19396       here = layout->o_arg1;
19397       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   19397       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
19398                              1L);   19398                              1L);
19399       if (tmp) {   19399       if (tmp) {
19400     19400  
19401       } else {   19401       } else {
19402         vgPlain_assert_fail((Bool )1,   19402         vgPlain_assert_fail((Bool )1,
19403                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   19403                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
19404                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,   19404                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,
19405                             (Char const   *)"vgSysWrap_generic_sys_readv_before",   19405                             (Char const   *)"vgSysWrap_generic_sys_readv_before",
19406                             "");   19406                             "");
19407       }   19407       }
19408       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   19408       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
19409       if (tmp___0) {   19409       if (tmp___0) {
19410     19410  
19411       } else {   19411       } else {
19412         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19412         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19413                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,   19413                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,
19414                             (Char const   *)"vgSysWrap_generic_sys_readv_before",   19414                             (Char const   *)"vgSysWrap_generic_sys_readv_before",
19415                             "");   19415                             "");
19416       }   19416       }
19417       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19417       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19418                                             (Char *)"readv(fd)",   19418                                             (Char *)"readv(fd)",
19419                                             (PtrdiffT )here,   19419                                             (PtrdiffT )here,
19420                                             (SizeT )sizeof(unsigned long ));   19420                                             (SizeT )sizeof(unsigned long ));
19421       break;   19421       break;
19422     }   19422     }
19423     while (1) {   19423     while (1) {
19424       here___0 = layout->o_arg2;   19424       here___0 = layout->o_arg2;
19425       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct iovec  const  *) <= sizeof(UWord )))),   19425       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct iovec  const  *) <= sizeof(UWord )))),
19426                                  1L);   19426                                  1L);
19427       if (tmp___1) {   19427       if (tmp___1) {
19428     19428  
19429       } else {   19429       } else {
19430         vgPlain_assert_fail((Bool )1,   19430         vgPlain_assert_fail((Bool )1,
19431                             (Char const   *)"sizeof(const struct iovec *) <= sizeof(UWord)",   19431                             (Char const   *)"sizeof(const struct iovec *) <= sizeof(UWord)",
19432                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,   19432                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,
19433                             (Char const   *)"vgSysWrap_generic_sys_readv_before",   19433                             (Char const   *)"vgSysWrap_generic_sys_readv_before",
19434                             "");   19434                             "");
19435       }   19435       }
19436       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   19436       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
19437       if (tmp___2) {   19437       if (tmp___2) {
19438     19438  
19439       } else {   19439       } else {
19440         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19440         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19441                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,   19441                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,
19442                             (Char const   *)"vgSysWrap_generic_sys_readv_before",   19442                             (Char const   *)"vgSysWrap_generic_sys_readv_before",
19443                             "");   19443                             "");
19444       }   19444       }
19445       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19445       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19446                                             (Char *)"readv(vector)",   19446                                             (Char *)"readv(vector)",
19447                                             (PtrdiffT )here___0,   19447                                             (PtrdiffT )here___0,
19448                                             (SizeT )sizeof(struct iovec  const  *));   19448                                             (SizeT )sizeof(struct iovec  const  *));
19449       break;   19449       break;
19450     }   19450     }
19451     while (1) {   19451     while (1) {
19452       here___1 = layout->o_arg3;   19452       here___1 = layout->o_arg3;
19453       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   19453       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
19454                                  1L);   19454                                  1L);
19455       if (tmp___3) {   19455       if (tmp___3) {
19456     19456  
19457       } else {   19457       } else {
19458         vgPlain_assert_fail((Bool )1,   19458         vgPlain_assert_fail((Bool )1,
19459                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   19459                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
19460                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,   19460                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,
19461                             (Char const   *)"vgSysWrap_generic_sys_readv_before",   19461                             (Char const   *)"vgSysWrap_generic_sys_readv_before",
19462                             "");   19462                             "");
19463       }   19463       }
19464       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   19464       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
19465       if (tmp___4) {   19465       if (tmp___4) {
19466     19466  
19467       } else {   19467       } else {
19468         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19468         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19469                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,   19469                             (Char const   *)"m_syswrap/syswrap-generic.c", 3795,
19470                             (Char const   *)"vgSysWrap_generic_sys_readv_before",   19470                             (Char const   *)"vgSysWrap_generic_sys_readv_before",
19471                             "");   19471                             "");
19472       }   19472       }
19473       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19473       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19474                                             (Char *)"readv(count)",   19474                                             (Char *)"readv(count)",
19475                                             (PtrdiffT )here___1,   19475                                             (PtrdiffT )here___1,
19476                                             (SizeT )sizeof(unsigned long ));   19476                                             (SizeT )sizeof(unsigned long ));
19477       break;   19477       break;
19478     }   19478     }
19479   } else {   19479   } else {
19480     19480  
19481   }   19481   }
19482   tmp___7 = vgModuleLocal_fd_allowed((Int )arrghs->arg1,   19482   tmp___7 = vgModuleLocal_fd_allowed((Int )arrghs->arg1,
19483                                      (Char const   *)"readv", tid, (Bool )0);   19483                                      (Char const   *)"readv", tid, (Bool )0);
19484   if (tmp___7) {   19484   if (tmp___7) {
19485     while (1) {   19485     while (1) {
19486       if (vgPlain_tdict.track_pre_mem_read) {   19486       if (vgPlain_tdict.track_pre_mem_read) {
19487         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   19487         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
19488                                               (Char *)"readv(vector)",   19488                                               (Char *)"readv(vector)",
19489                                               arrghs->arg2,   19489                                               arrghs->arg2,
19490                                               arrghs->arg3 * (UWord )sizeof(struct vki_iovec ));   19490                                               arrghs->arg3 * (UWord )sizeof(struct vki_iovec ));
19491       } else {   19491       } else {
19492     19492  
19493       }   19493       }
19494       break;   19494       break;
19495     }   19495     }
19496     if (arrghs->arg2 != 0UL) {   19496     if (arrghs->arg2 != 0UL) {
19497       vec = (struct vki_iovec *)arrghs->arg2;   19497       vec = (struct vki_iovec *)arrghs->arg2;
19498       i = 0;   19498       i = 0;
19499       while (i < (Int )arrghs->arg3) {   19499       while (i < (Int )arrghs->arg3) {
19500         while (1) {   19500         while (1) {
19501           if (vgPlain_tdict.track_pre_mem_write) {   19501           if (vgPlain_tdict.track_pre_mem_write) {
19502             (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   19502             (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
19503                                                    (Char *)"readv(vector[...])",   19503                                                    (Char *)"readv(vector[...])",
19504                                                    (Addr )(vec + i)->iov_base,   19504                                                    (Addr )(vec + i)->iov_base,
19505                                                    (SizeT )(vec + i)->iov_len);   19505                                                    (SizeT )(vec + i)->iov_len);
19506           } else {   19506           } else {
19507     19507  
19508           }   19508           }
19509           break;   19509           break;
19510         }   19510         }
19511         i ++;   19511         i ++;
19512       }   19512       }
19513     } else {   19513     } else {
19514     19514  
19515     }   19515     }
19516   } else {   19516   } else {
19517     while (1) {   19517     while (1) {
19518       wzz = (Word )9;   19518       wzz = (Word )9;
19519       if (wzz >= 0L) {   19519       if (wzz >= 0L) {
19520         if (wzz < 10000L) {   19520         if (wzz < 10000L) {
19521           tmp___5 = 1;   19521           tmp___5 = 1;
19522         } else {   19522         } else {
19523           tmp___5 = 0;   19523           tmp___5 = 0;
19524         }   19524         }
19525       } else {   19525       } else {
19526         tmp___5 = 0;   19526         tmp___5 = 0;
19527       }   19527       }
19528       tmp___6 = __builtin_expect((long )tmp___5, 1L);   19528       tmp___6 = __builtin_expect((long )tmp___5, 1L);
19529       if (tmp___6) {   19529       if (tmp___6) {
19530     19530  
19531       } else {   19531       } else {
19532         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   19532         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
19533                             (Char const   *)"m_syswrap/syswrap-generic.c", 3797,   19533                             (Char const   *)"m_syswrap/syswrap-generic.c", 3797,
19534                             (Char const   *)"vgSysWrap_generic_sys_readv_before",   19534                             (Char const   *)"vgSysWrap_generic_sys_readv_before",
19535                             "");   19535                             "");
19536       }   19536       }
19537       status->what = (enum __anonenum_what_133 )1;   19537       status->what = (enum __anonenum_what_133 )1;
19538       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   19538       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
19539       break;   19539       break;
19540     }   19540     }
19541   }   19541   }
19542   return;   19542   return;
19543 }   19543 }
19544 }   19544 }
19545 void vgSysWrap_generic_sys_readv_after(ThreadId tid , SyscallArgs *arrghs ,   19545 void vgSysWrap_generic_sys_readv_after(ThreadId tid , SyscallArgs *arrghs ,
19546                                        SyscallStatus *status )   19546                                        SyscallStatus *status )
19547 {   19547 {
19548   Bool tmp ;   19548   Bool tmp ;
19549   int tmp___0 ;   19549   int tmp___0 ;
19550   long tmp___1 ;   19550   long tmp___1 ;
19551   Int i ;   19551   Int i ;
19552   struct vki_iovec *vec ;   19552   struct vki_iovec *vec ;
19553   Int remains ;   19553   Int remains ;
19554   UWord tmp___2 ;   19554   UWord tmp___2 ;
19555   Int nReadThisBuf ;   19555   Int nReadThisBuf ;
19556   UWord tmp___3 ;   19556   UWord tmp___3 ;
19557     19557  
19558   {   19558   {
19559   if ((unsigned int )status->what == 1U) {   19559   if ((unsigned int )status->what == 1U) {
19560     tmp = sr_isError(status->sres);   19560     tmp = sr_isError(status->sres);
19561     if (tmp) {   19561     if (tmp) {
19562       tmp___0 = 0;   19562       tmp___0 = 0;
19563     } else {   19563     } else {
19564       tmp___0 = 1;   19564       tmp___0 = 1;
19565     }   19565     }
19566   } else {   19566   } else {
19567     tmp___0 = 0;   19567     tmp___0 = 0;
19568   }   19568   }
19569   tmp___1 = __builtin_expect((long )tmp___0, 1L);   19569   tmp___1 = __builtin_expect((long )tmp___0, 1L);
19570   if (tmp___1) {   19570   if (tmp___1) {
19571     19571  
19572   } else {   19572   } else {
19573     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   19573     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
19574                         (Char const   *)"m_syswrap/syswrap-generic.c", 3813,   19574                         (Char const   *)"m_syswrap/syswrap-generic.c", 3813,
19575                         (Char const   *)"vgSysWrap_generic_sys_readv_after", "");   19575                         (Char const   *)"vgSysWrap_generic_sys_readv_after", "");
19576   }   19576   }
19577   tmp___3 = getRES(status);   19577   tmp___3 = getRES(status);
19578   if (tmp___3 > 0UL) {   19578   if (tmp___3 > 0UL) {
19579     vec = (struct vki_iovec *)arrghs->arg2;   19579     vec = (struct vki_iovec *)arrghs->arg2;
19580     tmp___2 = getRES(status);   19580     tmp___2 = getRES(status);
19581     remains = (Int )tmp___2;   19581     remains = (Int )tmp___2;
19582     i = 0;   19582     i = 0;
19583     while (i < (Int )arrghs->arg3) {   19583     while (i < (Int )arrghs->arg3) {
19584       nReadThisBuf = (Int )(vec + i)->iov_len;   19584       nReadThisBuf = (Int )(vec + i)->iov_len;
19585       if (nReadThisBuf > remains) {   19585       if (nReadThisBuf > remains) {
19586         nReadThisBuf = remains;   19586         nReadThisBuf = remains;
19587       } else {   19587       } else {
19588     19588  
19589       }   19589       }
19590       while (1) {   19590       while (1) {
19591         if (vgPlain_tdict.track_post_mem_write) {   19591         if (vgPlain_tdict.track_post_mem_write) {
19592           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   19592           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
19593                                                   (Addr )(vec + i)->iov_base,   19593                                                   (Addr )(vec + i)->iov_base,
19594                                                   (SizeT )nReadThisBuf);   19594                                                   (SizeT )nReadThisBuf);
19595         } else {   19595         } else {
19596     19596  
19597         }   19597         }
19598         break;   19598         break;
19599       }   19599       }
19600       remains -= nReadThisBuf;   19600       remains -= nReadThisBuf;
19601       if (remains < 0) {   19601       if (remains < 0) {
19602         vgPlain_core_panic((Char *)"readv: remains < 0");   19602         vgPlain_core_panic((Char *)"readv: remains < 0");
19603       } else {   19603       } else {
19604     19604  
19605       }   19605       }
19606       i ++;   19606       i ++;
19607     }   19607     }
19608   } else {   19608   } else {
19609     19609  
19610   }   19610   }
19611   return;   19611   return;
19612 }   19612 }
19613 }   19613 }
19614 void vgSysWrap_generic_sys_rename_before(ThreadId tid ,   19614 void vgSysWrap_generic_sys_rename_before(ThreadId tid ,
19615                                          SyscallArgLayout *layout ,   19615                                          SyscallArgLayout *layout ,
19616                                          SyscallArgs *arrghs ,   19616                                          SyscallArgs *arrghs ,
19617                                          SyscallStatus *status , UWord *flags )   19617                                          SyscallStatus *status , UWord *flags )
19618 {   19618 {
19619   Char *tmp ;   19619   Char *tmp ;
19620   Int here ;   19620   Int here ;
19621   long tmp___0 ;   19621   long tmp___0 ;
19622   long tmp___1 ;   19622   long tmp___1 ;
19623   Int here___0 ;   19623   Int here___0 ;
19624   long tmp___2 ;   19624   long tmp___2 ;
19625   long tmp___3 ;   19625   long tmp___3 ;
19626     19626  
19627   {   19627   {
19628   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   19628   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
19629                        (Char *)"fuse-compatible");   19629                        (Char *)"fuse-compatible");
19630   if (tmp) {   19630   if (tmp) {
19631     *flags |= (unsigned long )(1 << 1);   19631     *flags |= (unsigned long )(1 << 1);
19632   } else {   19632   } else {
19633     19633  
19634   }   19634   }
19635   if (vgPlain_clo_trace_syscalls) {   19635   if (vgPlain_clo_trace_syscalls) {
19636     vgPlain_printf("sys_rename ( %#lx(%s), %#lx(%s) )", arrghs->arg1,   19636     vgPlain_printf("sys_rename ( %#lx(%s), %#lx(%s) )", arrghs->arg1,
19637                    (char *)arrghs->arg1, arrghs->arg2, (char *)arrghs->arg2);   19637                    (char *)arrghs->arg1, arrghs->arg2, (char *)arrghs->arg2);
19638   } else {   19638   } else {
19639     19639  
19640   }   19640   }
19641   if (vgPlain_tdict.track_pre_reg_read) {   19641   if (vgPlain_tdict.track_pre_reg_read) {
19642     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19642     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19643                                           (Char *)"(syscallno)",   19643                                           (Char *)"(syscallno)",
19644                                           (PtrdiffT )layout->o_sysno,   19644                                           (PtrdiffT )layout->o_sysno,
19645                                           (SizeT )sizeof(UWord ));   19645                                           (SizeT )sizeof(UWord ));
19646     while (1) {   19646     while (1) {
19647       here = layout->o_arg1;   19647       here = layout->o_arg1;
19648       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   19648       tmp___0 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
19649                                  1L);   19649                                  1L);
19650       if (tmp___0) {   19650       if (tmp___0) {
19651     19651  
19652       } else {   19652       } else {
19653         vgPlain_assert_fail((Bool )1,   19653         vgPlain_assert_fail((Bool )1,
19654                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   19654                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
19655                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,   19655                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,
19656                             (Char const   *)"vgSysWrap_generic_sys_rename_before",   19656                             (Char const   *)"vgSysWrap_generic_sys_rename_before",
19657                             "");   19657                             "");
19658       }   19658       }
19659       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   19659       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
19660       if (tmp___1) {   19660       if (tmp___1) {
19661     19661  
19662       } else {   19662       } else {
19663         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19663         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19664                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,   19664                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,
19665                             (Char const   *)"vgSysWrap_generic_sys_rename_before",   19665                             (Char const   *)"vgSysWrap_generic_sys_rename_before",
19666                             "");   19666                             "");
19667       }   19667       }
19668       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19668       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19669                                             (Char *)"rename(oldpath)",   19669                                             (Char *)"rename(oldpath)",
19670                                             (PtrdiffT )here,   19670                                             (PtrdiffT )here,
19671                                             (SizeT )sizeof(char const   *));   19671                                             (SizeT )sizeof(char const   *));
19672       break;   19672       break;
19673     }   19673     }
19674     while (1) {   19674     while (1) {
19675       here___0 = layout->o_arg2;   19675       here___0 = layout->o_arg2;
19676       tmp___2 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   19676       tmp___2 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
19677                                  1L);   19677                                  1L);
19678       if (tmp___2) {   19678       if (tmp___2) {
19679     19679  
19680       } else {   19680       } else {
19681         vgPlain_assert_fail((Bool )1,   19681         vgPlain_assert_fail((Bool )1,
19682                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   19682                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
19683                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,   19683                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,
19684                             (Char const   *)"vgSysWrap_generic_sys_rename_before",   19684                             (Char const   *)"vgSysWrap_generic_sys_rename_before",
19685                             "");   19685                             "");
19686       }   19686       }
19687       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   19687       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
19688       if (tmp___3) {   19688       if (tmp___3) {
19689     19689  
19690       } else {   19690       } else {
19691         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19691         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19692                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,   19692                             (Char const   *)"m_syswrap/syswrap-generic.c", 3834,
19693                             (Char const   *)"vgSysWrap_generic_sys_rename_before",   19693                             (Char const   *)"vgSysWrap_generic_sys_rename_before",
19694                             "");   19694                             "");
19695       }   19695       }
19696       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19696       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19697                                             (Char *)"rename(newpath)",   19697                                             (Char *)"rename(newpath)",
19698                                             (PtrdiffT )here___0,   19698                                             (PtrdiffT )here___0,
19699                                             (SizeT )sizeof(char const   *));   19699                                             (SizeT )sizeof(char const   *));
19700       break;   19700       break;
19701     }   19701     }
19702   } else {   19702   } else {
19703     19703  
19704   }   19704   }
19705   while (1) {   19705   while (1) {
19706     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   19706     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
19707       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   19707       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
19708                                                    (Char *)"rename(oldpath)",   19708                                                    (Char *)"rename(oldpath)",
19709                                                    arrghs->arg1);   19709                                                    arrghs->arg1);
19710     } else {   19710     } else {
19711     19711  
19712     }   19712     }
19713     break;   19713     break;
19714   }   19714   }
19715   while (1) {   19715   while (1) {
19716     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   19716     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
19717       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   19717       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
19718                                                    (Char *)"rename(newpath)",   19718                                                    (Char *)"rename(newpath)",
19719                                                    arrghs->arg2);   19719                                                    arrghs->arg2);
19720     } else {   19720     } else {
19721     19721  
19722     }   19722     }
19723     break;   19723     break;
19724   }   19724   }
19725   return;   19725   return;
19726 }   19726 }
19727 }   19727 }
19728 void vgSysWrap_generic_sys_rmdir_before(ThreadId tid ,   19728 void vgSysWrap_generic_sys_rmdir_before(ThreadId tid ,
19729                                         SyscallArgLayout *layout ,   19729                                         SyscallArgLayout *layout ,
19730                                         SyscallArgs *arrghs ,   19730                                         SyscallArgs *arrghs ,
19731                                         SyscallStatus *status , UWord *flags )   19731                                         SyscallStatus *status , UWord *flags )
19732 {   19732 {
19733   Int here ;   19733   Int here ;
19734   long tmp ;   19734   long tmp ;
19735   long tmp___0 ;   19735   long tmp___0 ;
19736     19736  
19737   {   19737   {
19738   *flags |= (unsigned long )(1 << 1);   19738   *flags |= (unsigned long )(1 << 1);
19739   if (vgPlain_clo_trace_syscalls) {   19739   if (vgPlain_clo_trace_syscalls) {
19740     vgPlain_printf("sys_rmdir ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);   19740     vgPlain_printf("sys_rmdir ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);
19741   } else {   19741   } else {
19742     19742  
19743   }   19743   }
19744   if (vgPlain_tdict.track_pre_reg_read) {   19744   if (vgPlain_tdict.track_pre_reg_read) {
19745     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19745     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19746                                           (Char *)"(syscallno)",   19746                                           (Char *)"(syscallno)",
19747                                           (PtrdiffT )layout->o_sysno,   19747                                           (PtrdiffT )layout->o_sysno,
19748                                           (SizeT )sizeof(UWord ));   19748                                           (SizeT )sizeof(UWord ));
19749     while (1) {   19749     while (1) {
19750       here = layout->o_arg1;   19750       here = layout->o_arg1;
19751       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   19751       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
19752                              1L);   19752                              1L);
19753       if (tmp) {   19753       if (tmp) {
19754     19754  
19755       } else {   19755       } else {
19756         vgPlain_assert_fail((Bool )1,   19756         vgPlain_assert_fail((Bool )1,
19757                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   19757                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
19758                             (Char const   *)"m_syswrap/syswrap-generic.c", 3843,   19758                             (Char const   *)"m_syswrap/syswrap-generic.c", 3843,
19759                             (Char const   *)"vgSysWrap_generic_sys_rmdir_before",   19759                             (Char const   *)"vgSysWrap_generic_sys_rmdir_before",
19760                             "");   19760                             "");
19761       }   19761       }
19762       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   19762       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
19763       if (tmp___0) {   19763       if (tmp___0) {
19764     19764  
19765       } else {   19765       } else {
19766         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19766         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19767                             (Char const   *)"m_syswrap/syswrap-generic.c", 3843,   19767                             (Char const   *)"m_syswrap/syswrap-generic.c", 3843,
19768                             (Char const   *)"vgSysWrap_generic_sys_rmdir_before",   19768                             (Char const   *)"vgSysWrap_generic_sys_rmdir_before",
19769                             "");   19769                             "");
19770       }   19770       }
19771       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19771       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19772                                             (Char *)"rmdir(pathname)",   19772                                             (Char *)"rmdir(pathname)",
19773                                             (PtrdiffT )here,   19773                                             (PtrdiffT )here,
19774                                             (SizeT )sizeof(char const   *));   19774                                             (SizeT )sizeof(char const   *));
19775       break;   19775       break;
19776     }   19776     }
19777   } else {   19777   } else {
19778     19778  
19779   }   19779   }
19780   while (1) {   19780   while (1) {
19781     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   19781     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
19782       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   19782       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
19783                                                    (Char *)"rmdir(pathname)",   19783                                                    (Char *)"rmdir(pathname)",
19784                                                    arrghs->arg1);   19784                                                    arrghs->arg1);
19785     } else {   19785     } else {
19786     19786  
19787     }   19787     }
19788     break;   19788     break;
19789   }   19789   }
19790   return;   19790   return;
19791 }   19791 }
19792 }   19792 }
19793 void vgSysWrap_generic_sys_select_before(ThreadId tid ,   19793 void vgSysWrap_generic_sys_select_before(ThreadId tid ,
19794                                          SyscallArgLayout *layout ,   19794                                          SyscallArgLayout *layout ,
19795                                          SyscallArgs *arrghs ,   19795                                          SyscallArgs *arrghs ,
19796                                          SyscallStatus *status , UWord *flags )   19796                                          SyscallStatus *status , UWord *flags )
19797 {   19797 {
19798   Int here ;   19798   Int here ;
19799   long tmp ;   19799   long tmp ;
19800   long tmp___0 ;   19800   long tmp___0 ;
19801   Int here___0 ;   19801   Int here___0 ;
19802   long tmp___1 ;   19802   long tmp___1 ;
19803   long tmp___2 ;   19803   long tmp___2 ;
19804   Int here___1 ;   19804   Int here___1 ;
19805   long tmp___3 ;   19805   long tmp___3 ;
19806   long tmp___4 ;   19806   long tmp___4 ;
19807   Int here___2 ;   19807   Int here___2 ;
19808   long tmp___5 ;   19808   long tmp___5 ;
19809   long tmp___6 ;   19809   long tmp___6 ;
19810   Int here___3 ;   19810   Int here___3 ;
19811   long tmp___7 ;   19811   long tmp___7 ;
19812   long tmp___8 ;   19812   long tmp___8 ;
19813   struct vki_timeval *zztv ;   19813   struct vki_timeval *zztv ;
19814     19814  
19815   {   19815   {
19816   *flags |= (unsigned long )(1 << 1);   19816   *flags |= (unsigned long )(1 << 1);
19817   if (vgPlain_clo_trace_syscalls) {   19817   if (vgPlain_clo_trace_syscalls) {
19818     vgPlain_printf("sys_select ( %ld, %#lx, %#lx, %#lx, %#lx )", arrghs->arg1,   19818     vgPlain_printf("sys_select ( %ld, %#lx, %#lx, %#lx, %#lx )", arrghs->arg1,
19819                    arrghs->arg2, arrghs->arg3, arrghs->arg4, arrghs->arg5);   19819                    arrghs->arg2, arrghs->arg3, arrghs->arg4, arrghs->arg5);
19820   } else {   19820   } else {
19821     19821  
19822   }   19822   }
19823   if (vgPlain_tdict.track_pre_reg_read) {   19823   if (vgPlain_tdict.track_pre_reg_read) {
19824     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19824     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19825                                           (Char *)"(syscallno)",   19825                                           (Char *)"(syscallno)",
19826                                           (PtrdiffT )layout->o_sysno,   19826                                           (PtrdiffT )layout->o_sysno,
19827                                           (SizeT )sizeof(UWord ));   19827                                           (SizeT )sizeof(UWord ));
19828     while (1) {   19828     while (1) {
19829       here = layout->o_arg1;   19829       here = layout->o_arg1;
19830       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   19830       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
19831       if (tmp) {   19831       if (tmp) {
19832     19832  
19833       } else {   19833       } else {
19834         vgPlain_assert_fail((Bool )1,   19834         vgPlain_assert_fail((Bool )1,
19835                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   19835                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
19836                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19836                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19837                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19837                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19838                             "");   19838                             "");
19839       }   19839       }
19840       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   19840       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
19841       if (tmp___0) {   19841       if (tmp___0) {
19842     19842  
19843       } else {   19843       } else {
19844         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19844         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19845                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19845                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19846                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19846                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19847                             "");   19847                             "");
19848       }   19848       }
19849       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19849       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19850                                             (Char *)"select(n)",   19850                                             (Char *)"select(n)",
19851                                             (PtrdiffT )here,   19851                                             (PtrdiffT )here,
19852                                             (SizeT )sizeof(int ));   19852                                             (SizeT )sizeof(int ));
19853       break;   19853       break;
19854     }   19854     }
19855     while (1) {   19855     while (1) {
19856       here___0 = layout->o_arg2;   19856       here___0 = layout->o_arg2;
19857       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_fd_set *) <= sizeof(UWord )))),   19857       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_fd_set *) <= sizeof(UWord )))),
19858                                  1L);   19858                                  1L);
19859       if (tmp___1) {   19859       if (tmp___1) {
19860     19860  
19861       } else {   19861       } else {
19862         vgPlain_assert_fail((Bool )1,   19862         vgPlain_assert_fail((Bool )1,
19863                             (Char const   *)"sizeof(vki_fd_set *) <= sizeof(UWord)",   19863                             (Char const   *)"sizeof(vki_fd_set *) <= sizeof(UWord)",
19864                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19864                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19865                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19865                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19866                             "");   19866                             "");
19867       }   19867       }
19868       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   19868       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
19869       if (tmp___2) {   19869       if (tmp___2) {
19870     19870  
19871       } else {   19871       } else {
19872         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19872         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19873                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19873                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19874                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19874                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19875                             "");   19875                             "");
19876       }   19876       }
19877       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19877       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19878                                             (Char *)"select(readfds)",   19878                                             (Char *)"select(readfds)",
19879                                             (PtrdiffT )here___0,   19879                                             (PtrdiffT )here___0,
19880                                             (SizeT )sizeof(vki_fd_set *));   19880                                             (SizeT )sizeof(vki_fd_set *));
19881       break;   19881       break;
19882     }   19882     }
19883     while (1) {   19883     while (1) {
19884       here___1 = layout->o_arg3;   19884       here___1 = layout->o_arg3;
19885       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_fd_set *) <= sizeof(UWord )))),   19885       tmp___3 = __builtin_expect((long )(! (! (sizeof(vki_fd_set *) <= sizeof(UWord )))),
19886                                  1L);   19886                                  1L);
19887       if (tmp___3) {   19887       if (tmp___3) {
19888     19888  
19889       } else {   19889       } else {
19890         vgPlain_assert_fail((Bool )1,   19890         vgPlain_assert_fail((Bool )1,
19891                             (Char const   *)"sizeof(vki_fd_set *) <= sizeof(UWord)",   19891                             (Char const   *)"sizeof(vki_fd_set *) <= sizeof(UWord)",
19892                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19892                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19893                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19893                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19894                             "");   19894                             "");
19895       }   19895       }
19896       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   19896       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
19897       if (tmp___4) {   19897       if (tmp___4) {
19898     19898  
19899       } else {   19899       } else {
19900         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19900         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19901                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19901                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19902                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19902                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19903                             "");   19903                             "");
19904       }   19904       }
19905       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19905       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19906                                             (Char *)"select(writefds)",   19906                                             (Char *)"select(writefds)",
19907                                             (PtrdiffT )here___1,   19907                                             (PtrdiffT )here___1,
19908                                             (SizeT )sizeof(vki_fd_set *));   19908                                             (SizeT )sizeof(vki_fd_set *));
19909       break;   19909       break;
19910     }   19910     }
19911     while (1) {   19911     while (1) {
19912       here___2 = layout->o_arg4;   19912       here___2 = layout->o_arg4;
19913       tmp___5 = __builtin_expect((long )(! (! (sizeof(vki_fd_set *) <= sizeof(UWord )))),   19913       tmp___5 = __builtin_expect((long )(! (! (sizeof(vki_fd_set *) <= sizeof(UWord )))),
19914                                  1L);   19914                                  1L);
19915       if (tmp___5) {   19915       if (tmp___5) {
19916     19916  
19917       } else {   19917       } else {
19918         vgPlain_assert_fail((Bool )1,   19918         vgPlain_assert_fail((Bool )1,
19919                             (Char const   *)"sizeof(vki_fd_set *) <= sizeof(UWord)",   19919                             (Char const   *)"sizeof(vki_fd_set *) <= sizeof(UWord)",
19920                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19920                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19921                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19921                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19922                             "");   19922                             "");
19923       }   19923       }
19924       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   19924       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
19925       if (tmp___6) {   19925       if (tmp___6) {
19926     19926  
19927       } else {   19927       } else {
19928         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19928         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19929                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19929                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19930                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19930                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19931                             "");   19931                             "");
19932       }   19932       }
19933       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19933       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19934                                             (Char *)"select(exceptfds)",   19934                                             (Char *)"select(exceptfds)",
19935                                             (PtrdiffT )here___2,   19935                                             (PtrdiffT )here___2,
19936                                             (SizeT )sizeof(vki_fd_set *));   19936                                             (SizeT )sizeof(vki_fd_set *));
19937       break;   19937       break;
19938     }   19938     }
19939     while (1) {   19939     while (1) {
19940       here___3 = layout->o_arg5;   19940       here___3 = layout->o_arg5;
19941       tmp___7 = __builtin_expect((long )(! (! (sizeof(struct vki_timeval *) <= sizeof(UWord )))),   19941       tmp___7 = __builtin_expect((long )(! (! (sizeof(struct vki_timeval *) <= sizeof(UWord )))),
19942                                  1L);   19942                                  1L);
19943       if (tmp___7) {   19943       if (tmp___7) {
19944     19944  
19945       } else {   19945       } else {
19946         vgPlain_assert_fail((Bool )1,   19946         vgPlain_assert_fail((Bool )1,
19947                             (Char const   *)"sizeof(struct vki_timeval *) <= sizeof(UWord)",   19947                             (Char const   *)"sizeof(struct vki_timeval *) <= sizeof(UWord)",
19948                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19948                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19949                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19949                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19950                             "");   19950                             "");
19951       }   19951       }
19952       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);   19952       tmp___8 = __builtin_expect((long )(! (! (here___3 >= 0))), 1L);
19953       if (tmp___8) {   19953       if (tmp___8) {
19954     19954  
19955       } else {   19955       } else {
19956         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   19956         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
19957                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,   19957                             (Char const   *)"m_syswrap/syswrap-generic.c", 3853,
19958                             (Char const   *)"vgSysWrap_generic_sys_select_before",   19958                             (Char const   *)"vgSysWrap_generic_sys_select_before",
19959                             "");   19959                             "");
19960       }   19960       }
19961       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   19961       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
19962                                             (Char *)"select(timeout)",   19962                                             (Char *)"select(timeout)",
19963                                             (PtrdiffT )here___3,   19963                                             (PtrdiffT )here___3,
19964                                             (SizeT )sizeof(struct vki_timeval *));   19964                                             (SizeT )sizeof(struct vki_timeval *));
19965       break;   19965       break;
19966     }   19966     }
19967   } else {   19967   } else {
19968     19968  
19969   }   19969   }
19970   if (arrghs->arg2 != 0UL) {   19970   if (arrghs->arg2 != 0UL) {
19971     while (1) {   19971     while (1) {
19972       if (vgPlain_tdict.track_pre_mem_read) {   19972       if (vgPlain_tdict.track_pre_mem_read) {
19973         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   19973         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
19974                                               (Char *)"select(readfds)",   19974                                               (Char *)"select(readfds)",
19975                                               arrghs->arg2, arrghs->arg1 / 8UL);   19975                                               arrghs->arg2, arrghs->arg1 / 8UL);
19976       } else {   19976       } else {
19977     19977  
19978       }   19978       }
19979       break;   19979       break;
19980     }   19980     }
19981   } else {   19981   } else {
19982     19982  
19983   }   19983   }
19984   if (arrghs->arg3 != 0UL) {   19984   if (arrghs->arg3 != 0UL) {
19985     while (1) {   19985     while (1) {
19986       if (vgPlain_tdict.track_pre_mem_read) {   19986       if (vgPlain_tdict.track_pre_mem_read) {
19987         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   19987         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
19988                                               (Char *)"select(writefds)",   19988                                               (Char *)"select(writefds)",
19989                                               arrghs->arg3, arrghs->arg1 / 8UL);   19989                                               arrghs->arg3, arrghs->arg1 / 8UL);
19990       } else {   19990       } else {
19991     19991  
19992       }   19992       }
19993       break;   19993       break;
19994     }   19994     }
19995   } else {   19995   } else {
19996     19996  
19997   }   19997   }
19998   if (arrghs->arg4 != 0UL) {   19998   if (arrghs->arg4 != 0UL) {
19999     while (1) {   19999     while (1) {
20000       if (vgPlain_tdict.track_pre_mem_read) {   20000       if (vgPlain_tdict.track_pre_mem_read) {
20001         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   20001         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
20002                                               (Char *)"select(exceptfds)",   20002                                               (Char *)"select(exceptfds)",
20003                                               arrghs->arg4, arrghs->arg1 / 8UL);   20003                                               arrghs->arg4, arrghs->arg1 / 8UL);
20004       } else {   20004       } else {
20005     20005  
20006       }   20006       }
20007       break;   20007       break;
20008     }   20008     }
20009   } else {   20009   } else {
20010     20010  
20011   }   20011   }
20012   if (arrghs->arg5 != 0UL) {   20012   if (arrghs->arg5 != 0UL) {
20013     while (1) {   20013     while (1) {
20014       zztv = (struct vki_timeval *)arrghs->arg5;   20014       zztv = (struct vki_timeval *)arrghs->arg5;
20015       while (1) {   20015       while (1) {
20016         if (vgPlain_tdict.track_pre_mem_read) {   20016         if (vgPlain_tdict.track_pre_mem_read) {
20017           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   20017           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
20018                                                 (Char *)"select(timeout)",   20018                                                 (Char *)"select(timeout)",
20019                                                 (UWord )(& zztv->tv_sec),   20019                                                 (UWord )(& zztv->tv_sec),
20020                                                 (SizeT )sizeof(zztv->tv_sec));   20020                                                 (SizeT )sizeof(zztv->tv_sec));
20021         } else {   20021         } else {
20022     20022  
20023         }   20023         }
20024         break;   20024         break;
20025       }   20025       }
20026       while (1) {   20026       while (1) {
20027         if (vgPlain_tdict.track_pre_mem_read) {   20027         if (vgPlain_tdict.track_pre_mem_read) {
20028           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   20028           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
20029                                                 (Char *)"select(timeout)",   20029                                                 (Char *)"select(timeout)",
20030                                                 (UWord )(& zztv->tv_usec),   20030                                                 (UWord )(& zztv->tv_usec),
20031                                                 (SizeT )sizeof(zztv->tv_usec));   20031                                                 (SizeT )sizeof(zztv->tv_usec));
20032         } else {   20032         } else {
20033     20033  
20034         }   20034         }
20035         break;   20035         break;
20036       }   20036       }
20037       break;   20037       break;
20038     }   20038     }
20039   } else {   20039   } else {
20040     20040  
20041   }   20041   }
20042   return;   20042   return;
20043 }   20043 }
20044 }   20044 }
20045 void vgSysWrap_generic_sys_setgid_before(ThreadId tid ,   20045 void vgSysWrap_generic_sys_setgid_before(ThreadId tid ,
20046                                          SyscallArgLayout *layout ,   20046                                          SyscallArgLayout *layout ,
20047                                          SyscallArgs *arrghs ,   20047                                          SyscallArgs *arrghs ,
20048                                          SyscallStatus *status , UWord *flags )   20048                                          SyscallStatus *status , UWord *flags )
20049 {   20049 {
20050   Int here ;   20050   Int here ;
20051   long tmp ;   20051   long tmp ;
20052   long tmp___0 ;   20052   long tmp___0 ;
20053     20053  
20054   {   20054   {
20055   if (vgPlain_clo_trace_syscalls) {   20055   if (vgPlain_clo_trace_syscalls) {
20056     vgPlain_printf("sys_setgid ( %ld )", arrghs->arg1);   20056     vgPlain_printf("sys_setgid ( %ld )", arrghs->arg1);
20057   } else {   20057   } else {
20058     20058  
20059   }   20059   }
20060   if (vgPlain_tdict.track_pre_reg_read) {   20060   if (vgPlain_tdict.track_pre_reg_read) {
20061     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20061     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20062                                           (Char *)"(syscallno)",   20062                                           (Char *)"(syscallno)",
20063                                           (PtrdiffT )layout->o_sysno,   20063                                           (PtrdiffT )layout->o_sysno,
20064                                           (SizeT )sizeof(UWord ));   20064                                           (SizeT )sizeof(UWord ));
20065     while (1) {   20065     while (1) {
20066       here = layout->o_arg1;   20066       here = layout->o_arg1;
20067       tmp = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),   20067       tmp = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),
20068                              1L);   20068                              1L);
20069       if (tmp) {   20069       if (tmp) {
20070     20070  
20071       } else {   20071       } else {
20072         vgPlain_assert_fail((Bool )1,   20072         vgPlain_assert_fail((Bool )1,
20073                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",   20073                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",
20074                             (Char const   *)"m_syswrap/syswrap-generic.c", 3871,   20074                             (Char const   *)"m_syswrap/syswrap-generic.c", 3871,
20075                             (Char const   *)"vgSysWrap_generic_sys_setgid_before",   20075                             (Char const   *)"vgSysWrap_generic_sys_setgid_before",
20076                             "");   20076                             "");
20077       }   20077       }
20078       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20078       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20079       if (tmp___0) {   20079       if (tmp___0) {
20080     20080  
20081       } else {   20081       } else {
20082         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20082         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20083                             (Char const   *)"m_syswrap/syswrap-generic.c", 3871,   20083                             (Char const   *)"m_syswrap/syswrap-generic.c", 3871,
20084                             (Char const   *)"vgSysWrap_generic_sys_setgid_before",   20084                             (Char const   *)"vgSysWrap_generic_sys_setgid_before",
20085                             "");   20085                             "");
20086       }   20086       }
20087       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20087       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20088                                             (Char *)"setgid(gid)",   20088                                             (Char *)"setgid(gid)",
20089                                             (PtrdiffT )here,   20089                                             (PtrdiffT )here,
20090                                             (SizeT )sizeof(vki_gid_t ));   20090                                             (SizeT )sizeof(vki_gid_t ));
20091       break;   20091       break;
20092     }   20092     }
20093   } else {   20093   } else {
20094     20094  
20095   }   20095   }
20096   return;   20096   return;
20097 }   20097 }
20098 }   20098 }
20099 void vgSysWrap_generic_sys_setsid_before(ThreadId tid ,   20099 void vgSysWrap_generic_sys_setsid_before(ThreadId tid ,
20100                                          SyscallArgLayout *layout ,   20100                                          SyscallArgLayout *layout ,
20101                                          SyscallArgs *arrghs ,   20101                                          SyscallArgs *arrghs ,
20102                                          SyscallStatus *status , UWord *flags )   20102                                          SyscallStatus *status , UWord *flags )
20103 {   20103 {
20104     20104  
20105     20105  
20106   {   20106   {
20107   if (vgPlain_clo_trace_syscalls) {   20107   if (vgPlain_clo_trace_syscalls) {
20108     vgPlain_printf("sys_setsid ( )");   20108     vgPlain_printf("sys_setsid ( )");
20109   } else {   20109   } else {
20110     20110  
20111   }   20111   }
20112   if (vgPlain_tdict.track_pre_reg_read) {   20112   if (vgPlain_tdict.track_pre_reg_read) {
20113     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20113     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20114                                           (Char *)"(syscallno)",   20114                                           (Char *)"(syscallno)",
20115                                           (PtrdiffT )layout->o_sysno,   20115                                           (PtrdiffT )layout->o_sysno,
20116                                           (SizeT )sizeof(UWord ));   20116                                           (SizeT )sizeof(UWord ));
20117   } else {   20117   } else {
20118     20118  
20119   }   20119   }
20120   return;   20120   return;
20121 }   20121 }
20122 }   20122 }
20123 void vgSysWrap_generic_sys_setgroups_before(ThreadId tid ,   20123 void vgSysWrap_generic_sys_setgroups_before(ThreadId tid ,
20124                                             SyscallArgLayout *layout ,   20124                                             SyscallArgLayout *layout ,
20125                                             SyscallArgs *arrghs ,   20125                                             SyscallArgs *arrghs ,
20126                                             SyscallStatus *status ,   20126                                             SyscallStatus *status ,
20127                                             UWord *flags )   20127                                             UWord *flags )
20128 {   20128 {
20129   Int here ;   20129   Int here ;
20130   long tmp ;   20130   long tmp ;
20131   long tmp___0 ;   20131   long tmp___0 ;
20132   Int here___0 ;   20132   Int here___0 ;
20133   long tmp___1 ;   20133   long tmp___1 ;
20134   long tmp___2 ;   20134   long tmp___2 ;
20135     20135  
20136   {   20136   {
20137   if (vgPlain_clo_trace_syscalls) {   20137   if (vgPlain_clo_trace_syscalls) {
20138     vgPlain_printf("setgroups ( %llu, %#lx )", (ULong )arrghs->arg1,   20138     vgPlain_printf("setgroups ( %llu, %#lx )", (ULong )arrghs->arg1,
20139                    arrghs->arg2);   20139                    arrghs->arg2);
20140   } else {   20140   } else {
20141     20141  
20142   }   20142   }
20143   if (vgPlain_tdict.track_pre_reg_read) {   20143   if (vgPlain_tdict.track_pre_reg_read) {
20144     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20144     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20145                                           (Char *)"(syscallno)",   20145                                           (Char *)"(syscallno)",
20146                                           (PtrdiffT )layout->o_sysno,   20146                                           (PtrdiffT )layout->o_sysno,
20147                                           (SizeT )sizeof(UWord ));   20147                                           (SizeT )sizeof(UWord ));
20148     while (1) {   20148     while (1) {
20149       here = layout->o_arg1;   20149       here = layout->o_arg1;
20150       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   20150       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
20151       if (tmp) {   20151       if (tmp) {
20152     20152  
20153       } else {   20153       } else {
20154         vgPlain_assert_fail((Bool )1,   20154         vgPlain_assert_fail((Bool )1,
20155                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   20155                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
20156                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,   20156                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,
20157                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",   20157                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",
20158                             "");   20158                             "");
20159       }   20159       }
20160       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20160       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20161       if (tmp___0) {   20161       if (tmp___0) {
20162     20162  
20163       } else {   20163       } else {
20164         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20164         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20165                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,   20165                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,
20166                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",   20166                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",
20167                             "");   20167                             "");
20168       }   20168       }
20169       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20169       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20170                                             (Char *)"setgroups(size)",   20170                                             (Char *)"setgroups(size)",
20171                                             (PtrdiffT )here,   20171                                             (PtrdiffT )here,
20172                                             (SizeT )sizeof(int ));   20172                                             (SizeT )sizeof(int ));
20173       break;   20173       break;
20174     }   20174     }
20175     while (1) {   20175     while (1) {
20176       here___0 = layout->o_arg2;   20176       here___0 = layout->o_arg2;
20177       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_gid_t *) <= sizeof(UWord )))),   20177       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_gid_t *) <= sizeof(UWord )))),
20178                                  1L);   20178                                  1L);
20179       if (tmp___1) {   20179       if (tmp___1) {
20180     20180  
20181       } else {   20181       } else {
20182         vgPlain_assert_fail((Bool )1,   20182         vgPlain_assert_fail((Bool )1,
20183                             (Char const   *)"sizeof(vki_gid_t *) <= sizeof(UWord)",   20183                             (Char const   *)"sizeof(vki_gid_t *) <= sizeof(UWord)",
20184                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,   20184                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,
20185                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",   20185                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",
20186                             "");   20186                             "");
20187       }   20187       }
20188       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   20188       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
20189       if (tmp___2) {   20189       if (tmp___2) {
20190     20190  
20191       } else {   20191       } else {
20192         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20192         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20193                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,   20193                             (Char const   *)"m_syswrap/syswrap-generic.c", 3883,
20194                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",   20194                             (Char const   *)"vgSysWrap_generic_sys_setgroups_before",
20195                             "");   20195                             "");
20196       }   20196       }
20197       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20197       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20198                                             (Char *)"setgroups(list)",   20198                                             (Char *)"setgroups(list)",
20199                                             (PtrdiffT )here___0,   20199                                             (PtrdiffT )here___0,
20200                                             (SizeT )sizeof(vki_gid_t *));   20200                                             (SizeT )sizeof(vki_gid_t *));
20201       break;   20201       break;
20202     }   20202     }
20203   } else {   20203   } else {
20204     20204  
20205   }   20205   }
20206   if (arrghs->arg1 > 0UL) {   20206   if (arrghs->arg1 > 0UL) {
20207     while (1) {   20207     while (1) {
20208       if (vgPlain_tdict.track_pre_mem_read) {   20208       if (vgPlain_tdict.track_pre_mem_read) {
20209         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   20209         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
20210                                               (Char *)"setgroups(list)",   20210                                               (Char *)"setgroups(list)",
20211                                               arrghs->arg2,   20211                                               arrghs->arg2,
20212                                               arrghs->arg1 * (UWord )sizeof(vki_gid_t ));   20212                                               arrghs->arg1 * (UWord )sizeof(vki_gid_t ));
20213       } else {   20213       } else {
20214     20214  
20215       }   20215       }
20216       break;   20216       break;
20217     }   20217     }
20218   } else {   20218   } else {
20219     20219  
20220   }   20220   }
20221   return;   20221   return;
20222 }   20222 }
20223 }   20223 }
20224 void vgSysWrap_generic_sys_setpgid_before(ThreadId tid ,   20224 void vgSysWrap_generic_sys_setpgid_before(ThreadId tid ,
20225                                           SyscallArgLayout *layout ,   20225                                           SyscallArgLayout *layout ,
20226                                           SyscallArgs *arrghs ,   20226                                           SyscallArgs *arrghs ,
20227                                           SyscallStatus *status , UWord *flags )   20227                                           SyscallStatus *status , UWord *flags )
20228 {   20228 {
20229   Int here ;   20229   Int here ;
20230   long tmp ;   20230   long tmp ;
20231   long tmp___0 ;   20231   long tmp___0 ;
20232   Int here___0 ;   20232   Int here___0 ;
20233   long tmp___1 ;   20233   long tmp___1 ;
20234   long tmp___2 ;   20234   long tmp___2 ;
20235     20235  
20236   {   20236   {
20237   if (vgPlain_clo_trace_syscalls) {   20237   if (vgPlain_clo_trace_syscalls) {
20238     vgPlain_printf("setpgid ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   20238     vgPlain_printf("setpgid ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
20239   } else {   20239   } else {
20240     20240  
20241   }   20241   }
20242   if (vgPlain_tdict.track_pre_reg_read) {   20242   if (vgPlain_tdict.track_pre_reg_read) {
20243     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20243     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20244                                           (Char *)"(syscallno)",   20244                                           (Char *)"(syscallno)",
20245                                           (PtrdiffT )layout->o_sysno,   20245                                           (PtrdiffT )layout->o_sysno,
20246                                           (SizeT )sizeof(UWord ));   20246                                           (SizeT )sizeof(UWord ));
20247     while (1) {   20247     while (1) {
20248       here = layout->o_arg1;   20248       here = layout->o_arg1;
20249       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),   20249       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),
20250                              1L);   20250                              1L);
20251       if (tmp) {   20251       if (tmp) {
20252     20252  
20253       } else {   20253       } else {
20254         vgPlain_assert_fail((Bool )1,   20254         vgPlain_assert_fail((Bool )1,
20255                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",   20255                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",
20256                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,   20256                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,
20257                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",   20257                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",
20258                             "");   20258                             "");
20259       }   20259       }
20260       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20260       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20261       if (tmp___0) {   20261       if (tmp___0) {
20262     20262  
20263       } else {   20263       } else {
20264         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20264         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20265                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,   20265                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,
20266                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",   20266                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",
20267                             "");   20267                             "");
20268       }   20268       }
20269       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20269       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20270                                             (Char *)"setpgid(pid)",   20270                                             (Char *)"setpgid(pid)",
20271                                             (PtrdiffT )here,   20271                                             (PtrdiffT )here,
20272                                             (SizeT )sizeof(vki_pid_t ));   20272                                             (SizeT )sizeof(vki_pid_t ));
20273       break;   20273       break;
20274     }   20274     }
20275     while (1) {   20275     while (1) {
20276       here___0 = layout->o_arg2;   20276       here___0 = layout->o_arg2;
20277       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),   20277       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),
20278                                  1L);   20278                                  1L);
20279       if (tmp___1) {   20279       if (tmp___1) {
20280     20280  
20281       } else {   20281       } else {
20282         vgPlain_assert_fail((Bool )1,   20282         vgPlain_assert_fail((Bool )1,
20283                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",   20283                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",
20284                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,   20284                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,
20285                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",   20285                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",
20286                             "");   20286                             "");
20287       }   20287       }
20288       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   20288       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
20289       if (tmp___2) {   20289       if (tmp___2) {
20290     20290  
20291       } else {   20291       } else {
20292         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20292         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20293                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,   20293                             (Char const   *)"m_syswrap/syswrap-generic.c", 3891,
20294                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",   20294                             (Char const   *)"vgSysWrap_generic_sys_setpgid_before",
20295                             "");   20295                             "");
20296       }   20296       }
20297       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20297       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20298                                             (Char *)"setpgid(pgid)",   20298                                             (Char *)"setpgid(pgid)",
20299                                             (PtrdiffT )here___0,   20299                                             (PtrdiffT )here___0,
20300                                             (SizeT )sizeof(vki_pid_t ));   20300                                             (SizeT )sizeof(vki_pid_t ));
20301       break;   20301       break;
20302     }   20302     }
20303   } else {   20303   } else {
20304     20304  
20305   }   20305   }
20306   return;   20306   return;
20307 }   20307 }
20308 }   20308 }
20309 void vgSysWrap_generic_sys_setregid_before(ThreadId tid ,   20309 void vgSysWrap_generic_sys_setregid_before(ThreadId tid ,
20310                                            SyscallArgLayout *layout ,   20310                                            SyscallArgLayout *layout ,
20311                                            SyscallArgs *arrghs ,   20311                                            SyscallArgs *arrghs ,
20312                                            SyscallStatus *status , UWord *flags )   20312                                            SyscallStatus *status , UWord *flags )
20313 {   20313 {
20314   Int here ;   20314   Int here ;
20315   long tmp ;   20315   long tmp ;
20316   long tmp___0 ;   20316   long tmp___0 ;
20317   Int here___0 ;   20317   Int here___0 ;
20318   long tmp___1 ;   20318   long tmp___1 ;
20319   long tmp___2 ;   20319   long tmp___2 ;
20320     20320  
20321   {   20321   {
20322   if (vgPlain_clo_trace_syscalls) {   20322   if (vgPlain_clo_trace_syscalls) {
20323     vgPlain_printf("sys_setregid ( %ld, %ld )", arrghs->arg1, arrghs->arg2);   20323     vgPlain_printf("sys_setregid ( %ld, %ld )", arrghs->arg1, arrghs->arg2);
20324   } else {   20324   } else {
20325     20325  
20326   }   20326   }
20327   if (vgPlain_tdict.track_pre_reg_read) {   20327   if (vgPlain_tdict.track_pre_reg_read) {
20328     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20328     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20329                                           (Char *)"(syscallno)",   20329                                           (Char *)"(syscallno)",
20330                                           (PtrdiffT )layout->o_sysno,   20330                                           (PtrdiffT )layout->o_sysno,
20331                                           (SizeT )sizeof(UWord ));   20331                                           (SizeT )sizeof(UWord ));
20332     while (1) {   20332     while (1) {
20333       here = layout->o_arg1;   20333       here = layout->o_arg1;
20334       tmp = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),   20334       tmp = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),
20335                              1L);   20335                              1L);
20336       if (tmp) {   20336       if (tmp) {
20337     20337  
20338       } else {   20338       } else {
20339         vgPlain_assert_fail((Bool )1,   20339         vgPlain_assert_fail((Bool )1,
20340                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",   20340                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",
20341                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,   20341                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,
20342                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",   20342                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",
20343                             "");   20343                             "");
20344       }   20344       }
20345       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20345       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20346       if (tmp___0) {   20346       if (tmp___0) {
20347     20347  
20348       } else {   20348       } else {
20349         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20349         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20350                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,   20350                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,
20351                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",   20351                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",
20352                             "");   20352                             "");
20353       }   20353       }
20354       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20354       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20355                                             (Char *)"setregid(rgid)",   20355                                             (Char *)"setregid(rgid)",
20356                                             (PtrdiffT )here,   20356                                             (PtrdiffT )here,
20357                                             (SizeT )sizeof(vki_gid_t ));   20357                                             (SizeT )sizeof(vki_gid_t ));
20358       break;   20358       break;
20359     }   20359     }
20360     while (1) {   20360     while (1) {
20361       here___0 = layout->o_arg2;   20361       here___0 = layout->o_arg2;
20362       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),   20362       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_gid_t ) <= sizeof(UWord )))),
20363                                  1L);   20363                                  1L);
20364       if (tmp___1) {   20364       if (tmp___1) {
20365     20365  
20366       } else {   20366       } else {
20367         vgPlain_assert_fail((Bool )1,   20367         vgPlain_assert_fail((Bool )1,
20368                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",   20368                             (Char const   *)"sizeof(vki_gid_t) <= sizeof(UWord)",
20369                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,   20369                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,
20370                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",   20370                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",
20371                             "");   20371                             "");
20372       }   20372       }
20373       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   20373       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
20374       if (tmp___2) {   20374       if (tmp___2) {
20375     20375  
20376       } else {   20376       } else {
20377         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20377         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20378                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,   20378                             (Char const   *)"m_syswrap/syswrap-generic.c", 3897,
20379                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",   20379                             (Char const   *)"vgSysWrap_generic_sys_setregid_before",
20380                             "");   20380                             "");
20381       }   20381       }
20382       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20382       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20383                                             (Char *)"setregid(egid)",   20383                                             (Char *)"setregid(egid)",
20384                                             (PtrdiffT )here___0,   20384                                             (PtrdiffT )here___0,
20385                                             (SizeT )sizeof(vki_gid_t ));   20385                                             (SizeT )sizeof(vki_gid_t ));
20386       break;   20386       break;
20387     }   20387     }
20388   } else {   20388   } else {
20389     20389  
20390   }   20390   }
20391   return;   20391   return;
20392 }   20392 }
20393 }   20393 }
20394 void vgSysWrap_generic_sys_setreuid_before(ThreadId tid ,   20394 void vgSysWrap_generic_sys_setreuid_before(ThreadId tid ,
20395                                            SyscallArgLayout *layout ,   20395                                            SyscallArgLayout *layout ,
20396                                            SyscallArgs *arrghs ,   20396                                            SyscallArgs *arrghs ,
20397                                            SyscallStatus *status , UWord *flags )   20397                                            SyscallStatus *status , UWord *flags )
20398 {   20398 {
20399   Int here ;   20399   Int here ;
20400   long tmp ;   20400   long tmp ;
20401   long tmp___0 ;   20401   long tmp___0 ;
20402   Int here___0 ;   20402   Int here___0 ;
20403   long tmp___1 ;   20403   long tmp___1 ;
20404   long tmp___2 ;   20404   long tmp___2 ;
20405     20405  
20406   {   20406   {
20407   if (vgPlain_clo_trace_syscalls) {   20407   if (vgPlain_clo_trace_syscalls) {
20408     vgPlain_printf("sys_setreuid ( 0x%lx, 0x%lx )", arrghs->arg1, arrghs->arg2);   20408     vgPlain_printf("sys_setreuid ( 0x%lx, 0x%lx )", arrghs->arg1, arrghs->arg2);
20409   } else {   20409   } else {
20410     20410  
20411   }   20411   }
20412   if (vgPlain_tdict.track_pre_reg_read) {   20412   if (vgPlain_tdict.track_pre_reg_read) {
20413     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20413     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20414                                           (Char *)"(syscallno)",   20414                                           (Char *)"(syscallno)",
20415                                           (PtrdiffT )layout->o_sysno,   20415                                           (PtrdiffT )layout->o_sysno,
20416                                           (SizeT )sizeof(UWord ));   20416                                           (SizeT )sizeof(UWord ));
20417     while (1) {   20417     while (1) {
20418       here = layout->o_arg1;   20418       here = layout->o_arg1;
20419       tmp = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),   20419       tmp = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),
20420                              1L);   20420                              1L);
20421       if (tmp) {   20421       if (tmp) {
20422     20422  
20423       } else {   20423       } else {
20424         vgPlain_assert_fail((Bool )1,   20424         vgPlain_assert_fail((Bool )1,
20425                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",   20425                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",
20426                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,   20426                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,
20427                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",   20427                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",
20428                             "");   20428                             "");
20429       }   20429       }
20430       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20430       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20431       if (tmp___0) {   20431       if (tmp___0) {
20432     20432  
20433       } else {   20433       } else {
20434         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20434         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20435                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,   20435                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,
20436                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",   20436                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",
20437                             "");   20437                             "");
20438       }   20438       }
20439       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20439       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20440                                             (Char *)"setreuid(ruid)",   20440                                             (Char *)"setreuid(ruid)",
20441                                             (PtrdiffT )here,   20441                                             (PtrdiffT )here,
20442                                             (SizeT )sizeof(vki_uid_t ));   20442                                             (SizeT )sizeof(vki_uid_t ));
20443       break;   20443       break;
20444     }   20444     }
20445     while (1) {   20445     while (1) {
20446       here___0 = layout->o_arg2;   20446       here___0 = layout->o_arg2;
20447       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),   20447       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),
20448                                  1L);   20448                                  1L);
20449       if (tmp___1) {   20449       if (tmp___1) {
20450     20450  
20451       } else {   20451       } else {
20452         vgPlain_assert_fail((Bool )1,   20452         vgPlain_assert_fail((Bool )1,
20453                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",   20453                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",
20454                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,   20454                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,
20455                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",   20455                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",
20456                             "");   20456                             "");
20457       }   20457       }
20458       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   20458       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
20459       if (tmp___2) {   20459       if (tmp___2) {
20460     20460  
20461       } else {   20461       } else {
20462         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20462         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20463                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,   20463                             (Char const   *)"m_syswrap/syswrap-generic.c", 3903,
20464                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",   20464                             (Char const   *)"vgSysWrap_generic_sys_setreuid_before",
20465                             "");   20465                             "");
20466       }   20466       }
20467       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20467       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20468                                             (Char *)"setreuid(euid)",   20468                                             (Char *)"setreuid(euid)",
20469                                             (PtrdiffT )here___0,   20469                                             (PtrdiffT )here___0,
20470                                             (SizeT )sizeof(vki_uid_t ));   20470                                             (SizeT )sizeof(vki_uid_t ));
20471       break;   20471       break;
20472     }   20472     }
20473   } else {   20473   } else {
20474     20474  
20475   }   20475   }
20476   return;   20476   return;
20477 }   20477 }
20478 }   20478 }
20479 void vgSysWrap_generic_sys_setrlimit_before(ThreadId tid ,   20479 void vgSysWrap_generic_sys_setrlimit_before(ThreadId tid ,
20480                                             SyscallArgLayout *layout ,   20480                                             SyscallArgLayout *layout ,
20481                                             SyscallArgs *arrghs ,   20481                                             SyscallArgs *arrghs ,
20482                                             SyscallStatus *status ,   20482                                             SyscallStatus *status ,
20483                                             UWord *flags )   20483                                             UWord *flags )
20484 {   20484 {
20485   UWord arg1 ;   20485   UWord arg1 ;
20486   Int here ;   20486   Int here ;
20487   long tmp ;   20487   long tmp ;
20488   long tmp___0 ;   20488   long tmp___0 ;
20489   Int here___0 ;   20489   Int here___0 ;
20490   long tmp___1 ;   20490   long tmp___1 ;
20491   long tmp___2 ;   20491   long tmp___2 ;
20492   Word wzz ;   20492   Word wzz ;
20493   int tmp___3 ;   20493   int tmp___3 ;
20494   long tmp___4 ;   20494   long tmp___4 ;
20495   Word wzz___0 ;   20495   Word wzz___0 ;
20496   int tmp___5 ;   20496   int tmp___5 ;
20497   long tmp___6 ;   20497   long tmp___6 ;
20498   Word wzz___1 ;   20498   Word wzz___1 ;
20499   int tmp___7 ;   20499   int tmp___7 ;
20500   long tmp___8 ;   20500   long tmp___8 ;
20501     20501  
20502   {   20502   {
20503   arg1 = arrghs->arg1;   20503   arg1 = arrghs->arg1;
20504   if (vgPlain_clo_trace_syscalls) {   20504   if (vgPlain_clo_trace_syscalls) {
20505     vgPlain_printf("sys_setrlimit ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);   20505     vgPlain_printf("sys_setrlimit ( %ld, %#lx )", arrghs->arg1, arrghs->arg2);
20506   } else {   20506   } else {
20507     20507  
20508   }   20508   }
20509   if (vgPlain_tdict.track_pre_reg_read) {   20509   if (vgPlain_tdict.track_pre_reg_read) {
20510     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20510     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20511                                           (Char *)"(syscallno)",   20511                                           (Char *)"(syscallno)",
20512                                           (PtrdiffT )layout->o_sysno,   20512                                           (PtrdiffT )layout->o_sysno,
20513                                           (SizeT )sizeof(UWord ));   20513                                           (SizeT )sizeof(UWord ));
20514     while (1) {   20514     while (1) {
20515       here = layout->o_arg1;   20515       here = layout->o_arg1;
20516       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),   20516       tmp = __builtin_expect((long )(! (! (sizeof(unsigned int ) <= sizeof(UWord )))),
20517                              1L);   20517                              1L);
20518       if (tmp) {   20518       if (tmp) {
20519     20519  
20520       } else {   20520       } else {
20521         vgPlain_assert_fail((Bool )1,   20521         vgPlain_assert_fail((Bool )1,
20522                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",   20522                             (Char const   *)"sizeof(unsigned int) <= sizeof(UWord)",
20523                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,   20523                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,
20524                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",   20524                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",
20525                             "");   20525                             "");
20526       }   20526       }
20527       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20527       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20528       if (tmp___0) {   20528       if (tmp___0) {
20529     20529  
20530       } else {   20530       } else {
20531         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20531         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20532                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,   20532                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,
20533                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",   20533                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",
20534                             "");   20534                             "");
20535       }   20535       }
20536       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20536       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20537                                             (Char *)"setrlimit(resource)",   20537                                             (Char *)"setrlimit(resource)",
20538                                             (PtrdiffT )here,   20538                                             (PtrdiffT )here,
20539                                             (SizeT )sizeof(unsigned int ));   20539                                             (SizeT )sizeof(unsigned int ));
20540       break;   20540       break;
20541     }   20541     }
20542     while (1) {   20542     while (1) {
20543       here___0 = layout->o_arg2;   20543       here___0 = layout->o_arg2;
20544       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rlimit *) <= sizeof(UWord )))),   20544       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct rlimit *) <= sizeof(UWord )))),
20545                                  1L);   20545                                  1L);
20546       if (tmp___1) {   20546       if (tmp___1) {
20547     20547  
20548       } else {   20548       } else {
20549         vgPlain_assert_fail((Bool )1,   20549         vgPlain_assert_fail((Bool )1,
20550                             (Char const   *)"sizeof(struct rlimit *) <= sizeof(UWord)",   20550                             (Char const   *)"sizeof(struct rlimit *) <= sizeof(UWord)",
20551                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,   20551                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,
20552                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",   20552                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",
20553                             "");   20553                             "");
20554       }   20554       }
20555       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   20555       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
20556       if (tmp___2) {   20556       if (tmp___2) {
20557     20557  
20558       } else {   20558       } else {
20559         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20559         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20560                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,   20560                             (Char const   *)"m_syswrap/syswrap-generic.c", 3911,
20561                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",   20561                             (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",
20562                             "");   20562                             "");
20563       }   20563       }
20564       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20564       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20565                                             (Char *)"setrlimit(rlim)",   20565                                             (Char *)"setrlimit(rlim)",
20566                                             (PtrdiffT )here___0,   20566                                             (PtrdiffT )here___0,
20567                                             (SizeT )sizeof(struct rlimit *));   20567                                             (SizeT )sizeof(struct rlimit *));
20568       break;   20568       break;
20569     }   20569     }
20570   } else {   20570   } else {
20571     20571  
20572   }   20572   }
20573   while (1) {   20573   while (1) {
20574     if (vgPlain_tdict.track_pre_mem_read) {   20574     if (vgPlain_tdict.track_pre_mem_read) {
20575       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   20575       (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
20576                                             (Char *)"setrlimit(rlim)",   20576                                             (Char *)"setrlimit(rlim)",
20577                                             arrghs->arg2,   20577                                             arrghs->arg2,
20578                                             (SizeT )sizeof(struct vki_rlimit ));   20578                                             (SizeT )sizeof(struct vki_rlimit ));
20579     } else {   20579     } else {
20580     20580  
20581     }   20581     }
20582     break;   20582     break;
20583   }   20583   }
20584   if (arg1 == 7UL) {   20584   if (arg1 == 7UL) {
20585     if (((struct vki_rlimit *)arrghs->arg2)->rlim_cur > (unsigned long )vgPlain_fd_hard_limit) {   20585     if (((struct vki_rlimit *)arrghs->arg2)->rlim_cur > (unsigned long )vgPlain_fd_hard_limit) {
20586       goto _L;   20586       goto _L;
20587     } else   20587     } else
20588     if (((struct vki_rlimit *)arrghs->arg2)->rlim_max != (unsigned long )vgPlain_fd_hard_limit) {   20588     if (((struct vki_rlimit *)arrghs->arg2)->rlim_max != (unsigned long )vgPlain_fd_hard_limit) {
20589       _L: /* CIL Label */   20589       _L: /* CIL Label */
20590       while (1) {   20590       while (1) {
20591         wzz = (Word )1;   20591         wzz = (Word )1;
20592         if (wzz >= 0L) {   20592         if (wzz >= 0L) {
20593           if (wzz < 10000L) {   20593           if (wzz < 10000L) {
20594             tmp___3 = 1;   20594             tmp___3 = 1;
20595           } else {   20595           } else {
20596             tmp___3 = 0;   20596             tmp___3 = 0;
20597           }   20597           }
20598         } else {   20598         } else {
20599           tmp___3 = 0;   20599           tmp___3 = 0;
20600         }   20600         }
20601         tmp___4 = __builtin_expect((long )tmp___3, 1L);   20601         tmp___4 = __builtin_expect((long )tmp___3, 1L);
20602         if (tmp___4) {   20602         if (tmp___4) {
20603     20603  
20604         } else {   20604         } else {
20605           vgPlain_assert_fail((Bool )1,   20605           vgPlain_assert_fail((Bool )1,
20606                               (Char const   *)"wzz >= 0 && wzz < 10000",   20606                               (Char const   *)"wzz >= 0 && wzz < 10000",
20607                               (Char const   *)"m_syswrap/syswrap-generic.c",   20607                               (Char const   *)"m_syswrap/syswrap-generic.c",
20608                               3923,   20608                               3923,
20609                               (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",   20609                               (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",
20610                               "");   20610                               "");
20611         }   20611         }
20612         status->what = (enum __anonenum_what_133 )1;   20612         status->what = (enum __anonenum_what_133 )1;
20613         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   20613         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
20614         break;   20614         break;
20615       }   20615       }
20616     } else {   20616     } else {
20617       vgPlain_fd_soft_limit = (Int )((struct vki_rlimit *)arrghs->arg2)->rlim_cur;   20617       vgPlain_fd_soft_limit = (Int )((struct vki_rlimit *)arrghs->arg2)->rlim_cur;
20618       while (1) {   20618       while (1) {
20619         status->what = (enum __anonenum_what_133 )1;   20619         status->what = (enum __anonenum_what_133 )1;
20620         status->sres = vgPlain_mk_SysRes_Success((UWord )0);   20620         status->sres = vgPlain_mk_SysRes_Success((UWord )0);
20621         break;   20621         break;
20622       }   20622       }
20623     }   20623     }
20624   } else   20624   } else
20625   if (arg1 == 2UL) {   20625   if (arg1 == 2UL) {
20626     if (((struct vki_rlimit *)arrghs->arg2)->rlim_cur > vgPlain_client_rlimit_data.rlim_max) {   20626     if (((struct vki_rlimit *)arrghs->arg2)->rlim_cur > vgPlain_client_rlimit_data.rlim_max) {
20627       goto _L___0;   20627       goto _L___0;
20628     } else   20628     } else
20629     if (((struct vki_rlimit *)arrghs->arg2)->rlim_max > vgPlain_client_rlimit_data.rlim_max) {   20629     if (((struct vki_rlimit *)arrghs->arg2)->rlim_max > vgPlain_client_rlimit_data.rlim_max) {
20630       _L___0: /* CIL Label */   20630       _L___0: /* CIL Label */
20631       while (1) {   20631       while (1) {
20632         wzz___0 = (Word )1;   20632         wzz___0 = (Word )1;
20633         if (wzz___0 >= 0L) {   20633         if (wzz___0 >= 0L) {
20634           if (wzz___0 < 10000L) {   20634           if (wzz___0 < 10000L) {
20635             tmp___5 = 1;   20635             tmp___5 = 1;
20636           } else {   20636           } else {
20637             tmp___5 = 0;   20637             tmp___5 = 0;
20638           }   20638           }
20639         } else {   20639         } else {
20640           tmp___5 = 0;   20640           tmp___5 = 0;
20641         }   20641         }
20642         tmp___6 = __builtin_expect((long )tmp___5, 1L);   20642         tmp___6 = __builtin_expect((long )tmp___5, 1L);
20643         if (tmp___6) {   20643         if (tmp___6) {
20644     20644  
20645         } else {   20645         } else {
20646           vgPlain_assert_fail((Bool )1,   20646           vgPlain_assert_fail((Bool )1,
20647                               (Char const   *)"wzz >= 0 && wzz < 10000",   20647                               (Char const   *)"wzz >= 0 && wzz < 10000",
20648                               (Char const   *)"m_syswrap/syswrap-generic.c",   20648                               (Char const   *)"m_syswrap/syswrap-generic.c",
20649                               3933,   20649                               3933,
20650                               (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",   20650                               (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",
20651                               "");   20651                               "");
20652         }   20652         }
20653         status->what = (enum __anonenum_what_133 )1;   20653         status->what = (enum __anonenum_what_133 )1;
20654         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___0);   20654         status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___0);
20655         break;   20655         break;
20656       }   20656       }
20657     } else {   20657     } else {
20658       vgPlain_client_rlimit_data = *((struct vki_rlimit *)arrghs->arg2);   20658       vgPlain_client_rlimit_data = *((struct vki_rlimit *)arrghs->arg2);
20659       while (1) {   20659       while (1) {
20660         status->what = (enum __anonenum_what_133 )1;   20660         status->what = (enum __anonenum_what_133 )1;
20661         status->sres = vgPlain_mk_SysRes_Success((UWord )0);   20661         status->sres = vgPlain_mk_SysRes_Success((UWord )0);
20662         break;   20662         break;
20663       }   20663       }
20664     }   20664     }
20665   } else   20665   } else
20666   if (arg1 == 3UL) {   20666   if (arg1 == 3UL) {
20667     if (tid == 1U) {   20667     if (tid == 1U) {
20668       if (((struct vki_rlimit *)arrghs->arg2)->rlim_cur > vgPlain_client_rlimit_stack.rlim_max) {   20668       if (((struct vki_rlimit *)arrghs->arg2)->rlim_cur > vgPlain_client_rlimit_stack.rlim_max) {
20669         goto _L___1;   20669         goto _L___1;
20670       } else   20670       } else
20671       if (((struct vki_rlimit *)arrghs->arg2)->rlim_max > vgPlain_client_rlimit_stack.rlim_max) {   20671       if (((struct vki_rlimit *)arrghs->arg2)->rlim_max > vgPlain_client_rlimit_stack.rlim_max) {
20672         _L___1: /* CIL Label */   20672         _L___1: /* CIL Label */
20673         while (1) {   20673         while (1) {
20674           wzz___1 = (Word )1;   20674           wzz___1 = (Word )1;
20675           if (wzz___1 >= 0L) {   20675           if (wzz___1 >= 0L) {
20676             if (wzz___1 < 10000L) {   20676             if (wzz___1 < 10000L) {
20677               tmp___7 = 1;   20677               tmp___7 = 1;
20678             } else {   20678             } else {
20679               tmp___7 = 0;   20679               tmp___7 = 0;
20680             }   20680             }
20681           } else {   20681           } else {
20682             tmp___7 = 0;   20682             tmp___7 = 0;
20683           }   20683           }
20684           tmp___8 = __builtin_expect((long )tmp___7, 1L);   20684           tmp___8 = __builtin_expect((long )tmp___7, 1L);
20685           if (tmp___8) {   20685           if (tmp___8) {
20686     20686  
20687           } else {   20687           } else {
20688             vgPlain_assert_fail((Bool )1,   20688             vgPlain_assert_fail((Bool )1,
20689                                 (Char const   *)"wzz >= 0 && wzz < 10000",   20689                                 (Char const   *)"wzz >= 0 && wzz < 10000",
20690                                 (Char const   *)"m_syswrap/syswrap-generic.c",   20690                                 (Char const   *)"m_syswrap/syswrap-generic.c",
20691                                 3943,   20691                                 3943,
20692                                 (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",   20692                                 (Char const   *)"vgSysWrap_generic_sys_setrlimit_before",
20693                                 "");   20693                                 "");
20694           }   20694           }
20695           status->what = (enum __anonenum_what_133 )1;   20695           status->what = (enum __anonenum_what_133 )1;
20696           status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___1);   20696           status->sres = vgPlain_mk_SysRes_Error((UWord )wzz___1);
20697           break;   20697           break;
20698         }   20698         }
20699       } else {   20699       } else {
20700         vgPlain_threads[tid].client_stack_szB = ((struct vki_rlimit *)arrghs->arg2)->rlim_cur;   20700         vgPlain_threads[tid].client_stack_szB = ((struct vki_rlimit *)arrghs->arg2)->rlim_cur;
20701         vgPlain_client_rlimit_stack = *((struct vki_rlimit *)arrghs->arg2);   20701         vgPlain_client_rlimit_stack = *((struct vki_rlimit *)arrghs->arg2);
20702         while (1) {   20702         while (1) {
20703           status->what = (enum __anonenum_what_133 )1;   20703           status->what = (enum __anonenum_what_133 )1;
20704           status->sres = vgPlain_mk_SysRes_Success((UWord )0);   20704           status->sres = vgPlain_mk_SysRes_Success((UWord )0);
20705           break;   20705           break;
20706         }   20706         }
20707       }   20707       }
20708     } else {   20708     } else {
20709     20709  
20710     }   20710     }
20711   } else {   20711   } else {
20712     20712  
20713   }   20713   }
20714   return;   20714   return;
20715 }   20715 }
20716 }   20716 }
20717 void vgSysWrap_generic_sys_setuid_before(ThreadId tid ,   20717 void vgSysWrap_generic_sys_setuid_before(ThreadId tid ,
20718                                          SyscallArgLayout *layout ,   20718                                          SyscallArgLayout *layout ,
20719                                          SyscallArgs *arrghs ,   20719                                          SyscallArgs *arrghs ,
20720                                          SyscallStatus *status , UWord *flags )   20720                                          SyscallStatus *status , UWord *flags )
20721 {   20721 {
20722   Int here ;   20722   Int here ;
20723   long tmp ;   20723   long tmp ;
20724   long tmp___0 ;   20724   long tmp___0 ;
20725     20725  
20726   {   20726   {
20727   if (vgPlain_clo_trace_syscalls) {   20727   if (vgPlain_clo_trace_syscalls) {
20728     vgPlain_printf("sys_setuid ( %ld )", arrghs->arg1);   20728     vgPlain_printf("sys_setuid ( %ld )", arrghs->arg1);
20729   } else {   20729   } else {
20730     20730  
20731   }   20731   }
20732   if (vgPlain_tdict.track_pre_reg_read) {   20732   if (vgPlain_tdict.track_pre_reg_read) {
20733     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20733     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20734                                           (Char *)"(syscallno)",   20734                                           (Char *)"(syscallno)",
20735                                           (PtrdiffT )layout->o_sysno,   20735                                           (PtrdiffT )layout->o_sysno,
20736                                           (SizeT )sizeof(UWord ));   20736                                           (SizeT )sizeof(UWord ));
20737     while (1) {   20737     while (1) {
20738       here = layout->o_arg1;   20738       here = layout->o_arg1;
20739       tmp = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),   20739       tmp = __builtin_expect((long )(! (! (sizeof(vki_uid_t ) <= sizeof(UWord )))),
20740                              1L);   20740                              1L);
20741       if (tmp) {   20741       if (tmp) {
20742     20742  
20743       } else {   20743       } else {
20744         vgPlain_assert_fail((Bool )1,   20744         vgPlain_assert_fail((Bool )1,
20745                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",   20745                             (Char const   *)"sizeof(vki_uid_t) <= sizeof(UWord)",
20746                             (Char const   *)"m_syswrap/syswrap-generic.c", 3956,   20746                             (Char const   *)"m_syswrap/syswrap-generic.c", 3956,
20747                             (Char const   *)"vgSysWrap_generic_sys_setuid_before",   20747                             (Char const   *)"vgSysWrap_generic_sys_setuid_before",
20748                             "");   20748                             "");
20749       }   20749       }
20750       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20750       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20751       if (tmp___0) {   20751       if (tmp___0) {
20752     20752  
20753       } else {   20753       } else {
20754         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20754         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20755                             (Char const   *)"m_syswrap/syswrap-generic.c", 3956,   20755                             (Char const   *)"m_syswrap/syswrap-generic.c", 3956,
20756                             (Char const   *)"vgSysWrap_generic_sys_setuid_before",   20756                             (Char const   *)"vgSysWrap_generic_sys_setuid_before",
20757                             "");   20757                             "");
20758       }   20758       }
20759       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20759       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20760                                             (Char *)"setuid(uid)",   20760                                             (Char *)"setuid(uid)",
20761                                             (PtrdiffT )here,   20761                                             (PtrdiffT )here,
20762                                             (SizeT )sizeof(vki_uid_t ));   20762                                             (SizeT )sizeof(vki_uid_t ));
20763       break;   20763       break;
20764     }   20764     }
20765   } else {   20765   } else {
20766     20766  
20767   }   20767   }
20768   return;   20768   return;
20769 }   20769 }
20770 }   20770 }
20771 void vgSysWrap_generic_sys_newstat_before(ThreadId tid ,   20771 void vgSysWrap_generic_sys_newstat_before(ThreadId tid ,
20772                                           SyscallArgLayout *layout ,   20772                                           SyscallArgLayout *layout ,
20773                                           SyscallArgs *arrghs ,   20773                                           SyscallArgs *arrghs ,
20774                                           SyscallStatus *status , UWord *flags )   20774                                           SyscallStatus *status , UWord *flags )
20775 {   20775 {
20776   Int here ;   20776   Int here ;
20777   long tmp ;   20777   long tmp ;
20778   long tmp___0 ;   20778   long tmp___0 ;
20779   Int here___0 ;   20779   Int here___0 ;
20780   long tmp___1 ;   20780   long tmp___1 ;
20781   long tmp___2 ;   20781   long tmp___2 ;
20782     20782  
20783   {   20783   {
20784   if (vgPlain_clo_trace_syscalls) {   20784   if (vgPlain_clo_trace_syscalls) {
20785     vgPlain_printf("sys_newstat ( %#lx(%s), %#lx )", arrghs->arg1,   20785     vgPlain_printf("sys_newstat ( %#lx(%s), %#lx )", arrghs->arg1,
20786                    (char *)arrghs->arg1, arrghs->arg2);   20786                    (char *)arrghs->arg1, arrghs->arg2);
20787   } else {   20787   } else {
20788     20788  
20789   }   20789   }
20790   if (vgPlain_tdict.track_pre_reg_read) {   20790   if (vgPlain_tdict.track_pre_reg_read) {
20791     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20791     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20792                                           (Char *)"(syscallno)",   20792                                           (Char *)"(syscallno)",
20793                                           (PtrdiffT )layout->o_sysno,   20793                                           (PtrdiffT )layout->o_sysno,
20794                                           (SizeT )sizeof(UWord ));   20794                                           (SizeT )sizeof(UWord ));
20795     while (1) {   20795     while (1) {
20796       here = layout->o_arg1;   20796       here = layout->o_arg1;
20797       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   20797       tmp = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
20798                              1L);   20798                              1L);
20799       if (tmp) {   20799       if (tmp) {
20800     20800  
20801       } else {   20801       } else {
20802         vgPlain_assert_fail((Bool )1,   20802         vgPlain_assert_fail((Bool )1,
20803                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   20803                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
20804                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,   20804                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,
20805                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",   20805                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",
20806                             "");   20806                             "");
20807       }   20807       }
20808       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20808       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20809       if (tmp___0) {   20809       if (tmp___0) {
20810     20810  
20811       } else {   20811       } else {
20812         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20812         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20813                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,   20813                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,
20814                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",   20814                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",
20815                             "");   20815                             "");
20816       }   20816       }
20817       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20817       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20818                                             (Char *)"stat(file_name)",   20818                                             (Char *)"stat(file_name)",
20819                                             (PtrdiffT )here,   20819                                             (PtrdiffT )here,
20820                                             (SizeT )sizeof(char *));   20820                                             (SizeT )sizeof(char *));
20821       break;   20821       break;
20822     }   20822     }
20823     while (1) {   20823     while (1) {
20824       here___0 = layout->o_arg2;   20824       here___0 = layout->o_arg2;
20825       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct stat *) <= sizeof(UWord )))),   20825       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct stat *) <= sizeof(UWord )))),
20826                                  1L);   20826                                  1L);
20827       if (tmp___1) {   20827       if (tmp___1) {
20828     20828  
20829       } else {   20829       } else {
20830         vgPlain_assert_fail((Bool )1,   20830         vgPlain_assert_fail((Bool )1,
20831                             (Char const   *)"sizeof(struct stat *) <= sizeof(UWord)",   20831                             (Char const   *)"sizeof(struct stat *) <= sizeof(UWord)",
20832                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,   20832                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,
20833                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",   20833                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",
20834                             "");   20834                             "");
20835       }   20835       }
20836       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   20836       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
20837       if (tmp___2) {   20837       if (tmp___2) {
20838     20838  
20839       } else {   20839       } else {
20840         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20840         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20841                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,   20841                             (Char const   *)"m_syswrap/syswrap-generic.c", 3962,
20842                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",   20842                             (Char const   *)"vgSysWrap_generic_sys_newstat_before",
20843                             "");   20843                             "");
20844       }   20844       }
20845       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20845       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20846                                             (Char *)"stat(buf)",   20846                                             (Char *)"stat(buf)",
20847                                             (PtrdiffT )here___0,   20847                                             (PtrdiffT )here___0,
20848                                             (SizeT )sizeof(struct stat *));   20848                                             (SizeT )sizeof(struct stat *));
20849       break;   20849       break;
20850     }   20850     }
20851   } else {   20851   } else {
20852     20852  
20853   }   20853   }
20854   while (1) {   20854   while (1) {
20855     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   20855     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
20856       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   20856       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
20857                                                    (Char *)"stat(file_name)",   20857                                                    (Char *)"stat(file_name)",
20858                                                    arrghs->arg1);   20858                                                    arrghs->arg1);
20859     } else {   20859     } else {
20860     20860  
20861     }   20861     }
20862     break;   20862     break;
20863   }   20863   }
20864   while (1) {   20864   while (1) {
20865     if (vgPlain_tdict.track_pre_mem_write) {   20865     if (vgPlain_tdict.track_pre_mem_write) {
20866       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   20866       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
20867                                              (Char *)"stat(buf)", arrghs->arg2,   20867                                              (Char *)"stat(buf)", arrghs->arg2,
20868                                              (SizeT )sizeof(struct vki_stat ));   20868                                              (SizeT )sizeof(struct vki_stat ));
20869     } else {   20869     } else {
20870     20870  
20871     }   20871     }
20872     break;   20872     break;
20873   }   20873   }
20874   return;   20874   return;
20875 }   20875 }
20876 }   20876 }
20877 void vgSysWrap_generic_sys_newstat_after(ThreadId tid , SyscallArgs *arrghs ,   20877 void vgSysWrap_generic_sys_newstat_after(ThreadId tid , SyscallArgs *arrghs ,
20878                                          SyscallStatus *status )   20878                                          SyscallStatus *status )
20879 {   20879 {
20880     20880  
20881     20881  
20882   {   20882   {
20883   while (1) {   20883   while (1) {
20884     if (vgPlain_tdict.track_post_mem_write) {   20884     if (vgPlain_tdict.track_post_mem_write) {
20885       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   20885       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
20886                                               (SizeT )sizeof(struct vki_stat ));   20886                                               (SizeT )sizeof(struct vki_stat ));
20887     } else {   20887     } else {
20888     20888  
20889     }   20889     }
20890     break;   20890     break;
20891   }   20891   }
20892   return;   20892   return;
20893 }   20893 }
20894 }   20894 }
20895 void vgSysWrap_generic_sys_statfs_before(ThreadId tid ,   20895 void vgSysWrap_generic_sys_statfs_before(ThreadId tid ,
20896                                          SyscallArgLayout *layout ,   20896                                          SyscallArgLayout *layout ,
20897                                          SyscallArgs *arrghs ,   20897                                          SyscallArgs *arrghs ,
20898                                          SyscallStatus *status , UWord *flags )   20898                                          SyscallStatus *status , UWord *flags )
20899 {   20899 {
20900   Int here ;   20900   Int here ;
20901   long tmp ;   20901   long tmp ;
20902   long tmp___0 ;   20902   long tmp___0 ;
20903   Int here___0 ;   20903   Int here___0 ;
20904   long tmp___1 ;   20904   long tmp___1 ;
20905   long tmp___2 ;   20905   long tmp___2 ;
20906     20906  
20907   {   20907   {
20908   if (vgPlain_clo_trace_syscalls) {   20908   if (vgPlain_clo_trace_syscalls) {
20909     vgPlain_printf("sys_statfs ( %#lx(%s), %#lx )", arrghs->arg1,   20909     vgPlain_printf("sys_statfs ( %#lx(%s), %#lx )", arrghs->arg1,
20910                    (char *)arrghs->arg1, arrghs->arg2);   20910                    (char *)arrghs->arg1, arrghs->arg2);
20911   } else {   20911   } else {
20912     20912  
20913   }   20913   }
20914   if (vgPlain_tdict.track_pre_reg_read) {   20914   if (vgPlain_tdict.track_pre_reg_read) {
20915     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20915     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20916                                           (Char *)"(syscallno)",   20916                                           (Char *)"(syscallno)",
20917                                           (PtrdiffT )layout->o_sysno,   20917                                           (PtrdiffT )layout->o_sysno,
20918                                           (SizeT )sizeof(UWord ));   20918                                           (SizeT )sizeof(UWord ));
20919     while (1) {   20919     while (1) {
20920       here = layout->o_arg1;   20920       here = layout->o_arg1;
20921       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   20921       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
20922                              1L);   20922                              1L);
20923       if (tmp) {   20923       if (tmp) {
20924     20924  
20925       } else {   20925       } else {
20926         vgPlain_assert_fail((Bool )1,   20926         vgPlain_assert_fail((Bool )1,
20927                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   20927                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
20928                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,   20928                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,
20929                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",   20929                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",
20930                             "");   20930                             "");
20931       }   20931       }
20932       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   20932       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
20933       if (tmp___0) {   20933       if (tmp___0) {
20934     20934  
20935       } else {   20935       } else {
20936         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20936         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20937                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,   20937                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,
20938                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",   20938                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",
20939                             "");   20939                             "");
20940       }   20940       }
20941       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20941       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20942                                             (Char *)"statfs(path)",   20942                                             (Char *)"statfs(path)",
20943                                             (PtrdiffT )here,   20943                                             (PtrdiffT )here,
20944                                             (SizeT )sizeof(char const   *));   20944                                             (SizeT )sizeof(char const   *));
20945       break;   20945       break;
20946     }   20946     }
20947     while (1) {   20947     while (1) {
20948       here___0 = layout->o_arg2;   20948       here___0 = layout->o_arg2;
20949       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct statfs *) <= sizeof(UWord )))),   20949       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct statfs *) <= sizeof(UWord )))),
20950                                  1L);   20950                                  1L);
20951       if (tmp___1) {   20951       if (tmp___1) {
20952     20952  
20953       } else {   20953       } else {
20954         vgPlain_assert_fail((Bool )1,   20954         vgPlain_assert_fail((Bool )1,
20955                             (Char const   *)"sizeof(struct statfs *) <= sizeof(UWord)",   20955                             (Char const   *)"sizeof(struct statfs *) <= sizeof(UWord)",
20956                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,   20956                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,
20957                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",   20957                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",
20958                             "");   20958                             "");
20959       }   20959       }
20960       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   20960       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
20961       if (tmp___2) {   20961       if (tmp___2) {
20962     20962  
20963       } else {   20963       } else {
20964         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   20964         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
20965                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,   20965                             (Char const   *)"m_syswrap/syswrap-generic.c", 3975,
20966                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",   20966                             (Char const   *)"vgSysWrap_generic_sys_statfs_before",
20967                             "");   20967                             "");
20968       }   20968       }
20969       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   20969       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
20970                                             (Char *)"statfs(buf)",   20970                                             (Char *)"statfs(buf)",
20971                                             (PtrdiffT )here___0,   20971                                             (PtrdiffT )here___0,
20972                                             (SizeT )sizeof(struct statfs *));   20972                                             (SizeT )sizeof(struct statfs *));
20973       break;   20973       break;
20974     }   20974     }
20975   } else {   20975   } else {
20976     20976  
20977   }   20977   }
20978   while (1) {   20978   while (1) {
20979     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   20979     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
20980       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   20980       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
20981                                                    (Char *)"statfs(path)",   20981                                                    (Char *)"statfs(path)",
20982                                                    arrghs->arg1);   20982                                                    arrghs->arg1);
20983     } else {   20983     } else {
20984     20984  
20985     }   20985     }
20986     break;   20986     break;
20987   }   20987   }
20988   while (1) {   20988   while (1) {
20989     if (vgPlain_tdict.track_pre_mem_write) {   20989     if (vgPlain_tdict.track_pre_mem_write) {
20990       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   20990       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
20991                                              (Char *)"statfs(buf)",   20991                                              (Char *)"statfs(buf)",
20992                                              arrghs->arg2,   20992                                              arrghs->arg2,
20993                                              (SizeT )sizeof(struct vki_statfs ));   20993                                              (SizeT )sizeof(struct vki_statfs ));
20994     } else {   20994     } else {
20995     20995  
20996     }   20996     }
20997     break;   20997     break;
20998   }   20998   }
20999   return;   20999   return;
21000 }   21000 }
21001 }   21001 }
21002 void vgSysWrap_generic_sys_statfs_after(ThreadId tid , SyscallArgs *arrghs ,   21002 void vgSysWrap_generic_sys_statfs_after(ThreadId tid , SyscallArgs *arrghs ,
21003                                         SyscallStatus *status )   21003                                         SyscallStatus *status )
21004 {   21004 {
21005     21005  
21006     21006  
21007   {   21007   {
21008   while (1) {   21008   while (1) {
21009     if (vgPlain_tdict.track_post_mem_write) {   21009     if (vgPlain_tdict.track_post_mem_write) {
21010       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   21010       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
21011                                               (SizeT )sizeof(struct vki_statfs ));   21011                                               (SizeT )sizeof(struct vki_statfs ));
21012     } else {   21012     } else {
21013     21013  
21014     }   21014     }
21015     break;   21015     break;
21016   }   21016   }
21017   return;   21017   return;
21018 }   21018 }
21019 }   21019 }
21020 void vgSysWrap_generic_sys_statfs64_before(ThreadId tid ,   21020 void vgSysWrap_generic_sys_statfs64_before(ThreadId tid ,
21021                                            SyscallArgLayout *layout ,   21021                                            SyscallArgLayout *layout ,
21022                                            SyscallArgs *arrghs ,   21022                                            SyscallArgs *arrghs ,
21023                                            SyscallStatus *status , UWord *flags )   21023                                            SyscallStatus *status , UWord *flags )
21024 {   21024 {
21025   Int here ;   21025   Int here ;
21026   long tmp ;   21026   long tmp ;
21027   long tmp___0 ;   21027   long tmp___0 ;
21028   Int here___0 ;   21028   Int here___0 ;
21029   long tmp___1 ;   21029   long tmp___1 ;
21030   long tmp___2 ;   21030   long tmp___2 ;
21031   Int here___1 ;   21031   Int here___1 ;
21032   long tmp___3 ;   21032   long tmp___3 ;
21033   long tmp___4 ;   21033   long tmp___4 ;
21034     21034  
21035   {   21035   {
21036   if (vgPlain_clo_trace_syscalls) {   21036   if (vgPlain_clo_trace_syscalls) {
21037     vgPlain_printf("sys_statfs64 ( %#lx(%s), %llu, %#lx )", arrghs->arg1,   21037     vgPlain_printf("sys_statfs64 ( %#lx(%s), %llu, %#lx )", arrghs->arg1,
21038                    (char *)arrghs->arg1, (ULong )arrghs->arg2, arrghs->arg3);   21038                    (char *)arrghs->arg1, (ULong )arrghs->arg2, arrghs->arg3);
21039   } else {   21039   } else {
21040     21040  
21041   }   21041   }
21042   if (vgPlain_tdict.track_pre_reg_read) {   21042   if (vgPlain_tdict.track_pre_reg_read) {
21043     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21043     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21044                                           (Char *)"(syscallno)",   21044                                           (Char *)"(syscallno)",
21045                                           (PtrdiffT )layout->o_sysno,   21045                                           (PtrdiffT )layout->o_sysno,
21046                                           (SizeT )sizeof(UWord ));   21046                                           (SizeT )sizeof(UWord ));
21047     while (1) {   21047     while (1) {
21048       here = layout->o_arg1;   21048       here = layout->o_arg1;
21049       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   21049       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
21050                              1L);   21050                              1L);
21051       if (tmp) {   21051       if (tmp) {
21052     21052  
21053       } else {   21053       } else {
21054         vgPlain_assert_fail((Bool )1,   21054         vgPlain_assert_fail((Bool )1,
21055                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   21055                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
21056                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,   21056                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,
21057                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",   21057                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",
21058                             "");   21058                             "");
21059       }   21059       }
21060       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21060       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21061       if (tmp___0) {   21061       if (tmp___0) {
21062     21062  
21063       } else {   21063       } else {
21064         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21064         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21065                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,   21065                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,
21066                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",   21066                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",
21067                             "");   21067                             "");
21068       }   21068       }
21069       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21069       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21070                                             (Char *)"statfs64(path)",   21070                                             (Char *)"statfs64(path)",
21071                                             (PtrdiffT )here,   21071                                             (PtrdiffT )here,
21072                                             (SizeT )sizeof(char const   *));   21072                                             (SizeT )sizeof(char const   *));
21073       break;   21073       break;
21074     }   21074     }
21075     while (1) {   21075     while (1) {
21076       here___0 = layout->o_arg2;   21076       here___0 = layout->o_arg2;
21077       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),   21077       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_size_t ) <= sizeof(UWord )))),
21078                                  1L);   21078                                  1L);
21079       if (tmp___1) {   21079       if (tmp___1) {
21080     21080  
21081       } else {   21081       } else {
21082         vgPlain_assert_fail((Bool )1,   21082         vgPlain_assert_fail((Bool )1,
21083                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",   21083                             (Char const   *)"sizeof(vki_size_t) <= sizeof(UWord)",
21084                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,   21084                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,
21085                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",   21085                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",
21086                             "");   21086                             "");
21087       }   21087       }
21088       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   21088       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
21089       if (tmp___2) {   21089       if (tmp___2) {
21090     21090  
21091       } else {   21091       } else {
21092         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21092         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21093                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,   21093                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,
21094                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",   21094                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",
21095                             "");   21095                             "");
21096       }   21096       }
21097       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21097       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21098                                             (Char *)"statfs64(size)",   21098                                             (Char *)"statfs64(size)",
21099                                             (PtrdiffT )here___0,   21099                                             (PtrdiffT )here___0,
21100                                             (SizeT )sizeof(vki_size_t ));   21100                                             (SizeT )sizeof(vki_size_t ));
21101       break;   21101       break;
21102     }   21102     }
21103     while (1) {   21103     while (1) {
21104       here___1 = layout->o_arg3;   21104       here___1 = layout->o_arg3;
21105       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct statfs64 *) <= sizeof(UWord )))),   21105       tmp___3 = __builtin_expect((long )(! (! (sizeof(struct statfs64 *) <= sizeof(UWord )))),
21106                                  1L);   21106                                  1L);
21107       if (tmp___3) {   21107       if (tmp___3) {
21108     21108  
21109       } else {   21109       } else {
21110         vgPlain_assert_fail((Bool )1,   21110         vgPlain_assert_fail((Bool )1,
21111                             (Char const   *)"sizeof(struct statfs64 *) <= sizeof(UWord)",   21111                             (Char const   *)"sizeof(struct statfs64 *) <= sizeof(UWord)",
21112                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,   21112                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,
21113                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",   21113                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",
21114                             "");   21114                             "");
21115       }   21115       }
21116       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   21116       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
21117       if (tmp___4) {   21117       if (tmp___4) {
21118     21118  
21119       } else {   21119       } else {
21120         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21120         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21121                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,   21121                             (Char const   *)"m_syswrap/syswrap-generic.c", 3988,
21122                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",   21122                             (Char const   *)"vgSysWrap_generic_sys_statfs64_before",
21123                             "");   21123                             "");
21124       }   21124       }
21125       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21125       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21126                                             (Char *)"statfs64(buf)",   21126                                             (Char *)"statfs64(buf)",
21127                                             (PtrdiffT )here___1,   21127                                             (PtrdiffT )here___1,
21128                                             (SizeT )sizeof(struct statfs64 *));   21128                                             (SizeT )sizeof(struct statfs64 *));
21129       break;   21129       break;
21130     }   21130     }
21131   } else {   21131   } else {
21132     21132  
21133   }   21133   }
21134   while (1) {   21134   while (1) {
21135     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   21135     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
21136       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   21136       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
21137                                                    (Char *)"statfs64(path)",   21137                                                    (Char *)"statfs64(path)",
21138                                                    arrghs->arg1);   21138                                                    arrghs->arg1);
21139     } else {   21139     } else {
21140     21140  
21141     }   21141     }
21142     break;   21142     break;
21143   }   21143   }
21144   while (1) {   21144   while (1) {
21145     if (vgPlain_tdict.track_pre_mem_write) {   21145     if (vgPlain_tdict.track_pre_mem_write) {
21146       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   21146       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
21147                                              (Char *)"statfs64(buf)",   21147                                              (Char *)"statfs64(buf)",
21148                                              arrghs->arg3, arrghs->arg2);   21148                                              arrghs->arg3, arrghs->arg2);
21149     } else {   21149     } else {
21150     21150  
21151     }   21151     }
21152     break;   21152     break;
21153   }   21153   }
21154   return;   21154   return;
21155 }   21155 }
21156 }   21156 }
21157 void vgSysWrap_generic_sys_statfs64_after(ThreadId tid , SyscallArgs *arrghs ,   21157 void vgSysWrap_generic_sys_statfs64_after(ThreadId tid , SyscallArgs *arrghs ,
21158                                           SyscallStatus *status )   21158                                           SyscallStatus *status )
21159 {   21159 {
21160     21160  
21161     21161  
21162   {   21162   {
21163   while (1) {   21163   while (1) {
21164     if (vgPlain_tdict.track_post_mem_write) {   21164     if (vgPlain_tdict.track_post_mem_write) {
21165       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg3,   21165       (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg3,
21166                                               arrghs->arg2);   21166                                               arrghs->arg2);
21167     } else {   21167     } else {
21168     21168  
21169     }   21169     }
21170     break;   21170     break;
21171   }   21171   }
21172   return;   21172   return;
21173 }   21173 }
21174 }   21174 }
21175 void vgSysWrap_generic_sys_symlink_before(ThreadId tid ,   21175 void vgSysWrap_generic_sys_symlink_before(ThreadId tid ,
21176                                           SyscallArgLayout *layout ,   21176                                           SyscallArgLayout *layout ,
21177                                           SyscallArgs *arrghs ,   21177                                           SyscallArgs *arrghs ,
21178                                           SyscallStatus *status , UWord *flags )   21178                                           SyscallStatus *status , UWord *flags )
21179 {   21179 {
21180   Int here ;   21180   Int here ;
21181   long tmp ;   21181   long tmp ;
21182   long tmp___0 ;   21182   long tmp___0 ;
21183   Int here___0 ;   21183   Int here___0 ;
21184   long tmp___1 ;   21184   long tmp___1 ;
21185   long tmp___2 ;   21185   long tmp___2 ;
21186     21186  
21187   {   21187   {
21188   *flags |= (unsigned long )(1 << 1);   21188   *flags |= (unsigned long )(1 << 1);
21189   if (vgPlain_clo_trace_syscalls) {   21189   if (vgPlain_clo_trace_syscalls) {
21190     vgPlain_printf("sys_symlink ( %#lx(%s), %#lx(%s) )", arrghs->arg1,   21190     vgPlain_printf("sys_symlink ( %#lx(%s), %#lx(%s) )", arrghs->arg1,
21191                    (char *)arrghs->arg1, arrghs->arg2, (char *)arrghs->arg2);   21191                    (char *)arrghs->arg1, arrghs->arg2, (char *)arrghs->arg2);
21192   } else {   21192   } else {
21193     21193  
21194   }   21194   }
21195   if (vgPlain_tdict.track_pre_reg_read) {   21195   if (vgPlain_tdict.track_pre_reg_read) {
21196     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21196     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21197                                           (Char *)"(syscallno)",   21197                                           (Char *)"(syscallno)",
21198                                           (PtrdiffT )layout->o_sysno,   21198                                           (PtrdiffT )layout->o_sysno,
21199                                           (SizeT )sizeof(UWord ));   21199                                           (SizeT )sizeof(UWord ));
21200     while (1) {   21200     while (1) {
21201       here = layout->o_arg1;   21201       here = layout->o_arg1;
21202       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   21202       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
21203                              1L);   21203                              1L);
21204       if (tmp) {   21204       if (tmp) {
21205     21205  
21206       } else {   21206       } else {
21207         vgPlain_assert_fail((Bool )1,   21207         vgPlain_assert_fail((Bool )1,
21208                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   21208                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
21209                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,   21209                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,
21210                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",   21210                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",
21211                             "");   21211                             "");
21212       }   21212       }
21213       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21213       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21214       if (tmp___0) {   21214       if (tmp___0) {
21215     21215  
21216       } else {   21216       } else {
21217         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21217         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21218                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,   21218                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,
21219                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",   21219                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",
21220                             "");   21220                             "");
21221       }   21221       }
21222       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21222       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21223                                             (Char *)"symlink(oldpath)",   21223                                             (Char *)"symlink(oldpath)",
21224                                             (PtrdiffT )here,   21224                                             (PtrdiffT )here,
21225                                             (SizeT )sizeof(char const   *));   21225                                             (SizeT )sizeof(char const   *));
21226       break;   21226       break;
21227     }   21227     }
21228     while (1) {   21228     while (1) {
21229       here___0 = layout->o_arg2;   21229       here___0 = layout->o_arg2;
21230       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   21230       tmp___1 = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
21231                                  1L);   21231                                  1L);
21232       if (tmp___1) {   21232       if (tmp___1) {
21233     21233  
21234       } else {   21234       } else {
21235         vgPlain_assert_fail((Bool )1,   21235         vgPlain_assert_fail((Bool )1,
21236                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   21236                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
21237                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,   21237                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,
21238                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",   21238                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",
21239                             "");   21239                             "");
21240       }   21240       }
21241       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   21241       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
21242       if (tmp___2) {   21242       if (tmp___2) {
21243     21243  
21244       } else {   21244       } else {
21245         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21245         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21246                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,   21246                             (Char const   *)"m_syswrap/syswrap-generic.c", 4001,
21247                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",   21247                             (Char const   *)"vgSysWrap_generic_sys_symlink_before",
21248                             "");   21248                             "");
21249       }   21249       }
21250       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21250       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21251                                             (Char *)"symlink(newpath)",   21251                                             (Char *)"symlink(newpath)",
21252                                             (PtrdiffT )here___0,   21252                                             (PtrdiffT )here___0,
21253                                             (SizeT )sizeof(char const   *));   21253                                             (SizeT )sizeof(char const   *));
21254       break;   21254       break;
21255     }   21255     }
21256   } else {   21256   } else {
21257     21257  
21258   }   21258   }
21259   while (1) {   21259   while (1) {
21260     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   21260     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
21261       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   21261       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
21262                                                    (Char *)"symlink(oldpath)",   21262                                                    (Char *)"symlink(oldpath)",
21263                                                    arrghs->arg1);   21263                                                    arrghs->arg1);
21264     } else {   21264     } else {
21265     21265  
21266     }   21266     }
21267     break;   21267     break;
21268   }   21268   }
21269   while (1) {   21269   while (1) {
21270     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   21270     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
21271       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   21271       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
21272                                                    (Char *)"symlink(newpath)",   21272                                                    (Char *)"symlink(newpath)",
21273                                                    arrghs->arg2);   21273                                                    arrghs->arg2);
21274     } else {   21274     } else {
21275     21275  
21276     }   21276     }
21277     break;   21277     break;
21278   }   21278   }
21279   return;   21279   return;
21280 }   21280 }
21281 }   21281 }
21282 void vgSysWrap_generic_sys_time_before(ThreadId tid , SyscallArgLayout *layout ,   21282 void vgSysWrap_generic_sys_time_before(ThreadId tid , SyscallArgLayout *layout ,
21283                                        SyscallArgs *arrghs ,   21283                                        SyscallArgs *arrghs ,
21284                                        SyscallStatus *status , UWord *flags )   21284                                        SyscallStatus *status , UWord *flags )
21285 {   21285 {
21286   Int here ;   21286   Int here ;
21287   long tmp ;   21287   long tmp ;
21288   long tmp___0 ;   21288   long tmp___0 ;
21289     21289  
21290   {   21290   {
21291   if (vgPlain_clo_trace_syscalls) {   21291   if (vgPlain_clo_trace_syscalls) {
21292     vgPlain_printf("sys_time ( %#lx )", arrghs->arg1);   21292     vgPlain_printf("sys_time ( %#lx )", arrghs->arg1);
21293   } else {   21293   } else {
21294     21294  
21295   }   21295   }
21296   if (vgPlain_tdict.track_pre_reg_read) {   21296   if (vgPlain_tdict.track_pre_reg_read) {
21297     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21297     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21298                                           (Char *)"(syscallno)",   21298                                           (Char *)"(syscallno)",
21299                                           (PtrdiffT )layout->o_sysno,   21299                                           (PtrdiffT )layout->o_sysno,
21300                                           (SizeT )sizeof(UWord ));   21300                                           (SizeT )sizeof(UWord ));
21301     while (1) {   21301     while (1) {
21302       here = layout->o_arg1;   21302       here = layout->o_arg1;
21303       tmp = __builtin_expect((long )(! (! (sizeof(int *) <= sizeof(UWord )))),   21303       tmp = __builtin_expect((long )(! (! (sizeof(int *) <= sizeof(UWord )))),
21304                              1L);   21304                              1L);
21305       if (tmp) {   21305       if (tmp) {
21306     21306  
21307       } else {   21307       } else {
21308         vgPlain_assert_fail((Bool )1,   21308         vgPlain_assert_fail((Bool )1,
21309                             (Char const   *)"sizeof(int *) <= sizeof(UWord)",   21309                             (Char const   *)"sizeof(int *) <= sizeof(UWord)",
21310                             (Char const   *)"m_syswrap/syswrap-generic.c", 4010,   21310                             (Char const   *)"m_syswrap/syswrap-generic.c", 4010,
21311                             (Char const   *)"vgSysWrap_generic_sys_time_before",   21311                             (Char const   *)"vgSysWrap_generic_sys_time_before",
21312                             "");   21312                             "");
21313       }   21313       }
21314       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21314       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21315       if (tmp___0) {   21315       if (tmp___0) {
21316     21316  
21317       } else {   21317       } else {
21318         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21318         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21319                             (Char const   *)"m_syswrap/syswrap-generic.c", 4010,   21319                             (Char const   *)"m_syswrap/syswrap-generic.c", 4010,
21320                             (Char const   *)"vgSysWrap_generic_sys_time_before",   21320                             (Char const   *)"vgSysWrap_generic_sys_time_before",
21321                             "");   21321                             "");
21322       }   21322       }
21323       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21323       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21324                                             (Char *)"time(t)", (PtrdiffT )here,   21324                                             (Char *)"time(t)", (PtrdiffT )here,
21325                                             (SizeT )sizeof(int *));   21325                                             (SizeT )sizeof(int *));
21326       break;   21326       break;
21327     }   21327     }
21328   } else {   21328   } else {
21329     21329  
21330   }   21330   }
21331   if (arrghs->arg1 != 0UL) {   21331   if (arrghs->arg1 != 0UL) {
21332     while (1) {   21332     while (1) {
21333       if (vgPlain_tdict.track_pre_mem_write) {   21333       if (vgPlain_tdict.track_pre_mem_write) {
21334         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   21334         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
21335                                                (Char *)"time(t)", arrghs->arg1,   21335                                                (Char *)"time(t)", arrghs->arg1,
21336                                                (SizeT )sizeof(vki_time_t ));   21336                                                (SizeT )sizeof(vki_time_t ));
21337       } else {   21337       } else {
21338     21338  
21339       }   21339       }
21340       break;   21340       break;
21341     }   21341     }
21342   } else {   21342   } else {
21343     21343  
21344   }   21344   }
21345   return;   21345   return;
21346 }   21346 }
21347 }   21347 }
21348 void vgSysWrap_generic_sys_time_after(ThreadId tid , SyscallArgs *arrghs ,   21348 void vgSysWrap_generic_sys_time_after(ThreadId tid , SyscallArgs *arrghs ,
21349                                       SyscallStatus *status )   21349                                       SyscallStatus *status )
21350 {   21350 {
21351     21351  
21352     21352  
21353   {   21353   {
21354   if (arrghs->arg1 != 0UL) {   21354   if (arrghs->arg1 != 0UL) {
21355     while (1) {   21355     while (1) {
21356       if (vgPlain_tdict.track_post_mem_write) {   21356       if (vgPlain_tdict.track_post_mem_write) {
21357         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,   21357         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,
21358                                                 (SizeT )sizeof(vki_time_t ));   21358                                                 (SizeT )sizeof(vki_time_t ));
21359       } else {   21359       } else {
21360     21360  
21361       }   21361       }
21362       break;   21362       break;
21363     }   21363     }
21364   } else {   21364   } else {
21365     21365  
21366   }   21366   }
21367   return;   21367   return;
21368 }   21368 }
21369 }   21369 }
21370 void vgSysWrap_generic_sys_times_before(ThreadId tid ,   21370 void vgSysWrap_generic_sys_times_before(ThreadId tid ,
21371                                         SyscallArgLayout *layout ,   21371                                         SyscallArgLayout *layout ,
21372                                         SyscallArgs *arrghs ,   21372                                         SyscallArgs *arrghs ,
21373                                         SyscallStatus *status , UWord *flags )   21373                                         SyscallStatus *status , UWord *flags )
21374 {   21374 {
21375   Int here ;   21375   Int here ;
21376   long tmp ;   21376   long tmp ;
21377   long tmp___0 ;   21377   long tmp___0 ;
21378     21378  
21379   {   21379   {
21380   if (vgPlain_clo_trace_syscalls) {   21380   if (vgPlain_clo_trace_syscalls) {
21381     vgPlain_printf("sys_times ( %#lx )", arrghs->arg1);   21381     vgPlain_printf("sys_times ( %#lx )", arrghs->arg1);
21382   } else {   21382   } else {
21383     21383  
21384   }   21384   }
21385   if (vgPlain_tdict.track_pre_reg_read) {   21385   if (vgPlain_tdict.track_pre_reg_read) {
21386     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21386     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21387                                           (Char *)"(syscallno)",   21387                                           (Char *)"(syscallno)",
21388                                           (PtrdiffT )layout->o_sysno,   21388                                           (PtrdiffT )layout->o_sysno,
21389                                           (SizeT )sizeof(UWord ));   21389                                           (SizeT )sizeof(UWord ));
21390     while (1) {   21390     while (1) {
21391       here = layout->o_arg1;   21391       here = layout->o_arg1;
21392       tmp = __builtin_expect((long )(! (! (sizeof(struct tms *) <= sizeof(UWord )))),   21392       tmp = __builtin_expect((long )(! (! (sizeof(struct tms *) <= sizeof(UWord )))),
21393                              1L);   21393                              1L);
21394       if (tmp) {   21394       if (tmp) {
21395     21395  
21396       } else {   21396       } else {
21397         vgPlain_assert_fail((Bool )1,   21397         vgPlain_assert_fail((Bool )1,
21398                             (Char const   *)"sizeof(struct tms *) <= sizeof(UWord)",   21398                             (Char const   *)"sizeof(struct tms *) <= sizeof(UWord)",
21399                             (Char const   *)"m_syswrap/syswrap-generic.c", 4026,   21399                             (Char const   *)"m_syswrap/syswrap-generic.c", 4026,
21400                             (Char const   *)"vgSysWrap_generic_sys_times_before",   21400                             (Char const   *)"vgSysWrap_generic_sys_times_before",
21401                             "");   21401                             "");
21402       }   21402       }
21403       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21403       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21404       if (tmp___0) {   21404       if (tmp___0) {
21405     21405  
21406       } else {   21406       } else {
21407         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21407         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21408                             (Char const   *)"m_syswrap/syswrap-generic.c", 4026,   21408                             (Char const   *)"m_syswrap/syswrap-generic.c", 4026,
21409                             (Char const   *)"vgSysWrap_generic_sys_times_before",   21409                             (Char const   *)"vgSysWrap_generic_sys_times_before",
21410                             "");   21410                             "");
21411       }   21411       }
21412       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21412       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21413                                             (Char *)"times(buf)",   21413                                             (Char *)"times(buf)",
21414                                             (PtrdiffT )here,   21414                                             (PtrdiffT )here,
21415                                             (SizeT )sizeof(struct tms *));   21415                                             (SizeT )sizeof(struct tms *));
21416       break;   21416       break;
21417     }   21417     }
21418   } else {   21418   } else {
21419     21419  
21420   }   21420   }
21421   if (arrghs->arg1 != 0UL) {   21421   if (arrghs->arg1 != 0UL) {
21422     while (1) {   21422     while (1) {
21423       if (vgPlain_tdict.track_pre_mem_write) {   21423       if (vgPlain_tdict.track_pre_mem_write) {
21424         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   21424         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
21425                                                (Char *)"times(buf)",   21425                                                (Char *)"times(buf)",
21426                                                arrghs->arg1,   21426                                                arrghs->arg1,
21427                                                (SizeT )sizeof(struct vki_tms ));   21427                                                (SizeT )sizeof(struct vki_tms ));
21428       } else {   21428       } else {
21429     21429  
21430       }   21430       }
21431       break;   21431       break;
21432     }   21432     }
21433   } else {   21433   } else {
21434     21434  
21435   }   21435   }
21436   return;   21436   return;
21437 }   21437 }
21438 }   21438 }
21439 void vgSysWrap_generic_sys_times_after(ThreadId tid , SyscallArgs *arrghs ,   21439 void vgSysWrap_generic_sys_times_after(ThreadId tid , SyscallArgs *arrghs ,
21440                                        SyscallStatus *status )   21440                                        SyscallStatus *status )
21441 {   21441 {
21442     21442  
21443     21443  
21444   {   21444   {
21445   if (arrghs->arg1 != 0UL) {   21445   if (arrghs->arg1 != 0UL) {
21446     while (1) {   21446     while (1) {
21447       if (vgPlain_tdict.track_post_mem_write) {   21447       if (vgPlain_tdict.track_post_mem_write) {
21448         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,   21448         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,
21449                                                 (SizeT )sizeof(struct vki_tms ));   21449                                                 (SizeT )sizeof(struct vki_tms ));
21450       } else {   21450       } else {
21451     21451  
21452       }   21452       }
21453       break;   21453       break;
21454     }   21454     }
21455   } else {   21455   } else {
21456     21456  
21457   }   21457   }
21458   return;   21458   return;
21459 }   21459 }
21460 }   21460 }
21461 void vgSysWrap_generic_sys_umask_before(ThreadId tid ,   21461 void vgSysWrap_generic_sys_umask_before(ThreadId tid ,
21462                                         SyscallArgLayout *layout ,   21462                                         SyscallArgLayout *layout ,
21463                                         SyscallArgs *arrghs ,   21463                                         SyscallArgs *arrghs ,
21464                                         SyscallStatus *status , UWord *flags )   21464                                         SyscallStatus *status , UWord *flags )
21465 {   21465 {
21466   Int here ;   21466   Int here ;
21467   long tmp ;   21467   long tmp ;
21468   long tmp___0 ;   21468   long tmp___0 ;
21469     21469  
21470   {   21470   {
21471   if (vgPlain_clo_trace_syscalls) {   21471   if (vgPlain_clo_trace_syscalls) {
21472     vgPlain_printf("sys_umask ( %ld )", arrghs->arg1);   21472     vgPlain_printf("sys_umask ( %ld )", arrghs->arg1);
21473   } else {   21473   } else {
21474     21474  
21475   }   21475   }
21476   if (vgPlain_tdict.track_pre_reg_read) {   21476   if (vgPlain_tdict.track_pre_reg_read) {
21477     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21477     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21478                                           (Char *)"(syscallno)",   21478                                           (Char *)"(syscallno)",
21479                                           (PtrdiffT )layout->o_sysno,   21479                                           (PtrdiffT )layout->o_sysno,
21480                                           (SizeT )sizeof(UWord ));   21480                                           (SizeT )sizeof(UWord ));
21481     while (1) {   21481     while (1) {
21482       here = layout->o_arg1;   21482       here = layout->o_arg1;
21483       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);   21483       tmp = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))), 1L);
21484       if (tmp) {   21484       if (tmp) {
21485     21485  
21486       } else {   21486       } else {
21487         vgPlain_assert_fail((Bool )1,   21487         vgPlain_assert_fail((Bool )1,
21488                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   21488                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
21489                             (Char const   *)"m_syswrap/syswrap-generic.c", 4042,   21489                             (Char const   *)"m_syswrap/syswrap-generic.c", 4042,
21490                             (Char const   *)"vgSysWrap_generic_sys_umask_before",   21490                             (Char const   *)"vgSysWrap_generic_sys_umask_before",
21491                             "");   21491                             "");
21492       }   21492       }
21493       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21493       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21494       if (tmp___0) {   21494       if (tmp___0) {
21495     21495  
21496       } else {   21496       } else {
21497         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21497         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21498                             (Char const   *)"m_syswrap/syswrap-generic.c", 4042,   21498                             (Char const   *)"m_syswrap/syswrap-generic.c", 4042,
21499                             (Char const   *)"vgSysWrap_generic_sys_umask_before",   21499                             (Char const   *)"vgSysWrap_generic_sys_umask_before",
21500                             "");   21500                             "");
21501       }   21501       }
21502       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21502       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21503                                             (Char *)"umask(mask)",   21503                                             (Char *)"umask(mask)",
21504                                             (PtrdiffT )here,   21504                                             (PtrdiffT )here,
21505                                             (SizeT )sizeof(int ));   21505                                             (SizeT )sizeof(int ));
21506       break;   21506       break;
21507     }   21507     }
21508   } else {   21508   } else {
21509     21509  
21510   }   21510   }
21511   return;   21511   return;
21512 }   21512 }
21513 }   21513 }
21514 void vgSysWrap_generic_sys_unlink_before(ThreadId tid ,   21514 void vgSysWrap_generic_sys_unlink_before(ThreadId tid ,
21515                                          SyscallArgLayout *layout ,   21515                                          SyscallArgLayout *layout ,
21516                                          SyscallArgs *arrghs ,   21516                                          SyscallArgs *arrghs ,
21517                                          SyscallStatus *status , UWord *flags )   21517                                          SyscallStatus *status , UWord *flags )
21518 {   21518 {
21519   Int here ;   21519   Int here ;
21520   long tmp ;   21520   long tmp ;
21521   long tmp___0 ;   21521   long tmp___0 ;
21522     21522  
21523   {   21523   {
21524   *flags |= (unsigned long )(1 << 1);   21524   *flags |= (unsigned long )(1 << 1);
21525   if (vgPlain_clo_trace_syscalls) {   21525   if (vgPlain_clo_trace_syscalls) {
21526     vgPlain_printf("sys_unlink ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);   21526     vgPlain_printf("sys_unlink ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);
21527   } else {   21527   } else {
21528     21528  
21529   }   21529   }
21530   if (vgPlain_tdict.track_pre_reg_read) {   21530   if (vgPlain_tdict.track_pre_reg_read) {
21531     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21531     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21532                                           (Char *)"(syscallno)",   21532                                           (Char *)"(syscallno)",
21533                                           (PtrdiffT )layout->o_sysno,   21533                                           (PtrdiffT )layout->o_sysno,
21534                                           (SizeT )sizeof(UWord ));   21534                                           (SizeT )sizeof(UWord ));
21535     while (1) {   21535     while (1) {
21536       here = layout->o_arg1;   21536       here = layout->o_arg1;
21537       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   21537       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
21538                              1L);   21538                              1L);
21539       if (tmp) {   21539       if (tmp) {
21540     21540  
21541       } else {   21541       } else {
21542         vgPlain_assert_fail((Bool )1,   21542         vgPlain_assert_fail((Bool )1,
21543                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   21543                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
21544                             (Char const   *)"m_syswrap/syswrap-generic.c", 4049,   21544                             (Char const   *)"m_syswrap/syswrap-generic.c", 4049,
21545                             (Char const   *)"vgSysWrap_generic_sys_unlink_before",   21545                             (Char const   *)"vgSysWrap_generic_sys_unlink_before",
21546                             "");   21546                             "");
21547       }   21547       }
21548       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21548       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21549       if (tmp___0) {   21549       if (tmp___0) {
21550     21550  
21551       } else {   21551       } else {
21552         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21552         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21553                             (Char const   *)"m_syswrap/syswrap-generic.c", 4049,   21553                             (Char const   *)"m_syswrap/syswrap-generic.c", 4049,
21554                             (Char const   *)"vgSysWrap_generic_sys_unlink_before",   21554                             (Char const   *)"vgSysWrap_generic_sys_unlink_before",
21555                             "");   21555                             "");
21556       }   21556       }
21557       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21557       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21558                                             (Char *)"unlink(pathname)",   21558                                             (Char *)"unlink(pathname)",
21559                                             (PtrdiffT )here,   21559                                             (PtrdiffT )here,
21560                                             (SizeT )sizeof(char const   *));   21560                                             (SizeT )sizeof(char const   *));
21561       break;   21561       break;
21562     }   21562     }
21563   } else {   21563   } else {
21564     21564  
21565   }   21565   }
21566   while (1) {   21566   while (1) {
21567     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   21567     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
21568       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   21568       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
21569                                                    (Char *)"unlink(pathname)",   21569                                                    (Char *)"unlink(pathname)",
21570                                                    arrghs->arg1);   21570                                                    arrghs->arg1);
21571     } else {   21571     } else {
21572     21572  
21573     }   21573     }
21574     break;   21574     break;
21575   }   21575   }
21576   return;   21576   return;
21577 }   21577 }
21578 }   21578 }
21579 void vgSysWrap_generic_sys_newuname_before(ThreadId tid ,   21579 void vgSysWrap_generic_sys_newuname_before(ThreadId tid ,
21580                                            SyscallArgLayout *layout ,   21580                                            SyscallArgLayout *layout ,
21581                                            SyscallArgs *arrghs ,   21581                                            SyscallArgs *arrghs ,
21582                                            SyscallStatus *status , UWord *flags )   21582                                            SyscallStatus *status , UWord *flags )
21583 {   21583 {
21584   Int here ;   21584   Int here ;
21585   long tmp ;   21585   long tmp ;
21586   long tmp___0 ;   21586   long tmp___0 ;
21587     21587  
21588   {   21588   {
21589   if (vgPlain_clo_trace_syscalls) {   21589   if (vgPlain_clo_trace_syscalls) {
21590     vgPlain_printf("sys_newuname ( %#lx )", arrghs->arg1);   21590     vgPlain_printf("sys_newuname ( %#lx )", arrghs->arg1);
21591   } else {   21591   } else {
21592     21592  
21593   }   21593   }
21594   if (vgPlain_tdict.track_pre_reg_read) {   21594   if (vgPlain_tdict.track_pre_reg_read) {
21595     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21595     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21596                                           (Char *)"(syscallno)",   21596                                           (Char *)"(syscallno)",
21597                                           (PtrdiffT )layout->o_sysno,   21597                                           (PtrdiffT )layout->o_sysno,
21598                                           (SizeT )sizeof(UWord ));   21598                                           (SizeT )sizeof(UWord ));
21599     while (1) {   21599     while (1) {
21600       here = layout->o_arg1;   21600       here = layout->o_arg1;
21601       tmp = __builtin_expect((long )(! (! (sizeof(struct new_utsname *) <= sizeof(UWord )))),   21601       tmp = __builtin_expect((long )(! (! (sizeof(struct new_utsname *) <= sizeof(UWord )))),
21602                              1L);   21602                              1L);
21603       if (tmp) {   21603       if (tmp) {
21604     21604  
21605       } else {   21605       } else {
21606         vgPlain_assert_fail((Bool )1,   21606         vgPlain_assert_fail((Bool )1,
21607                             (Char const   *)"sizeof(struct new_utsname *) <= sizeof(UWord)",   21607                             (Char const   *)"sizeof(struct new_utsname *) <= sizeof(UWord)",
21608                             (Char const   *)"m_syswrap/syswrap-generic.c", 4056,   21608                             (Char const   *)"m_syswrap/syswrap-generic.c", 4056,
21609                             (Char const   *)"vgSysWrap_generic_sys_newuname_before",   21609                             (Char const   *)"vgSysWrap_generic_sys_newuname_before",
21610                             "");   21610                             "");
21611       }   21611       }
21612       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21612       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21613       if (tmp___0) {   21613       if (tmp___0) {
21614     21614  
21615       } else {   21615       } else {
21616         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21616         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21617                             (Char const   *)"m_syswrap/syswrap-generic.c", 4056,   21617                             (Char const   *)"m_syswrap/syswrap-generic.c", 4056,
21618                             (Char const   *)"vgSysWrap_generic_sys_newuname_before",   21618                             (Char const   *)"vgSysWrap_generic_sys_newuname_before",
21619                             "");   21619                             "");
21620       }   21620       }
21621       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21621       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21622                                             (Char *)"uname(buf)",   21622                                             (Char *)"uname(buf)",
21623                                             (PtrdiffT )here,   21623                                             (PtrdiffT )here,
21624                                             (SizeT )sizeof(struct new_utsname *));   21624                                             (SizeT )sizeof(struct new_utsname *));
21625       break;   21625       break;
21626     }   21626     }
21627   } else {   21627   } else {
21628     21628  
21629   }   21629   }
21630   while (1) {   21630   while (1) {
21631     if (vgPlain_tdict.track_pre_mem_write) {   21631     if (vgPlain_tdict.track_pre_mem_write) {
21632       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   21632       (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
21633                                              (Char *)"uname(buf)", arrghs->arg1,   21633                                              (Char *)"uname(buf)", arrghs->arg1,
21634                                              (SizeT )sizeof(struct vki_new_utsname ));   21634                                              (SizeT )sizeof(struct vki_new_utsname ));
21635     } else {   21635     } else {
21636     21636  
21637     }   21637     }
21638     break;   21638     break;
21639   }   21639   }
21640   return;   21640   return;
21641 }   21641 }
21642 }   21642 }
21643 void vgSysWrap_generic_sys_newuname_after(ThreadId tid , SyscallArgs *arrghs ,   21643 void vgSysWrap_generic_sys_newuname_after(ThreadId tid , SyscallArgs *arrghs ,
21644                                           SyscallStatus *status )   21644                                           SyscallStatus *status )
21645 {   21645 {
21646     21646  
21647     21647  
21648   {   21648   {
21649   if (arrghs->arg1 != 0UL) {   21649   if (arrghs->arg1 != 0UL) {
21650     while (1) {   21650     while (1) {
21651       if (vgPlain_tdict.track_post_mem_write) {   21651       if (vgPlain_tdict.track_post_mem_write) {
21652         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,   21652         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg1,
21653                                                 (SizeT )sizeof(struct vki_new_utsname ));   21653                                                 (SizeT )sizeof(struct vki_new_utsname ));
21654       } else {   21654       } else {
21655     21655  
21656       }   21656       }
21657       break;   21657       break;
21658     }   21658     }
21659   } else {   21659   } else {
21660     21660  
21661   }   21661   }
21662   return;   21662   return;
21663 }   21663 }
21664 }   21664 }
21665 void vgSysWrap_generic_sys_waitpid_before(ThreadId tid ,   21665 void vgSysWrap_generic_sys_waitpid_before(ThreadId tid ,
21666                                           SyscallArgLayout *layout ,   21666                                           SyscallArgLayout *layout ,
21667                                           SyscallArgs *arrghs ,   21667                                           SyscallArgs *arrghs ,
21668                                           SyscallStatus *status , UWord *flags )   21668                                           SyscallStatus *status , UWord *flags )
21669 {   21669 {
21670   Int here ;   21670   Int here ;
21671   long tmp ;   21671   long tmp ;
21672   long tmp___0 ;   21672   long tmp___0 ;
21673   Int here___0 ;   21673   Int here___0 ;
21674   long tmp___1 ;   21674   long tmp___1 ;
21675   long tmp___2 ;   21675   long tmp___2 ;
21676   Int here___1 ;   21676   Int here___1 ;
21677   long tmp___3 ;   21677   long tmp___3 ;
21678   long tmp___4 ;   21678   long tmp___4 ;
21679     21679  
21680   {   21680   {
21681   *flags |= (unsigned long )(1 << 1);   21681   *flags |= (unsigned long )(1 << 1);
21682   if (vgPlain_clo_trace_syscalls) {   21682   if (vgPlain_clo_trace_syscalls) {
21683     vgPlain_printf("sys_waitpid ( %ld, %#lx, %ld )", arrghs->arg1, arrghs->arg2,   21683     vgPlain_printf("sys_waitpid ( %ld, %#lx, %ld )", arrghs->arg1, arrghs->arg2,
21684                    arrghs->arg3);   21684                    arrghs->arg3);
21685   } else {   21685   } else {
21686     21686  
21687   }   21687   }
21688   if (vgPlain_tdict.track_pre_reg_read) {   21688   if (vgPlain_tdict.track_pre_reg_read) {
21689     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21689     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21690                                           (Char *)"(syscallno)",   21690                                           (Char *)"(syscallno)",
21691                                           (PtrdiffT )layout->o_sysno,   21691                                           (PtrdiffT )layout->o_sysno,
21692                                           (SizeT )sizeof(UWord ));   21692                                           (SizeT )sizeof(UWord ));
21693     while (1) {   21693     while (1) {
21694       here = layout->o_arg1;   21694       here = layout->o_arg1;
21695       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),   21695       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),
21696                              1L);   21696                              1L);
21697       if (tmp) {   21697       if (tmp) {
21698     21698  
21699       } else {   21699       } else {
21700         vgPlain_assert_fail((Bool )1,   21700         vgPlain_assert_fail((Bool )1,
21701                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",   21701                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",
21702                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,   21702                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,
21703                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",   21703                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",
21704                             "");   21704                             "");
21705       }   21705       }
21706       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21706       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21707       if (tmp___0) {   21707       if (tmp___0) {
21708     21708  
21709       } else {   21709       } else {
21710         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21710         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21711                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,   21711                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,
21712                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",   21712                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",
21713                             "");   21713                             "");
21714       }   21714       }
21715       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21715       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21716                                             (Char *)"waitpid(pid)",   21716                                             (Char *)"waitpid(pid)",
21717                                             (PtrdiffT )here,   21717                                             (PtrdiffT )here,
21718                                             (SizeT )sizeof(vki_pid_t ));   21718                                             (SizeT )sizeof(vki_pid_t ));
21719       break;   21719       break;
21720     }   21720     }
21721     while (1) {   21721     while (1) {
21722       here___0 = layout->o_arg2;   21722       here___0 = layout->o_arg2;
21723       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int *) <= sizeof(UWord )))),   21723       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int *) <= sizeof(UWord )))),
21724                                  1L);   21724                                  1L);
21725       if (tmp___1) {   21725       if (tmp___1) {
21726     21726  
21727       } else {   21727       } else {
21728         vgPlain_assert_fail((Bool )1,   21728         vgPlain_assert_fail((Bool )1,
21729                             (Char const   *)"sizeof(unsigned int *) <= sizeof(UWord)",   21729                             (Char const   *)"sizeof(unsigned int *) <= sizeof(UWord)",
21730                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,   21730                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,
21731                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",   21731                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",
21732                             "");   21732                             "");
21733       }   21733       }
21734       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   21734       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
21735       if (tmp___2) {   21735       if (tmp___2) {
21736     21736  
21737       } else {   21737       } else {
21738         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21738         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21739                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,   21739                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,
21740                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",   21740                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",
21741                             "");   21741                             "");
21742       }   21742       }
21743       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21743       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21744                                             (Char *)"waitpid(status)",   21744                                             (Char *)"waitpid(status)",
21745                                             (PtrdiffT )here___0,   21745                                             (PtrdiffT )here___0,
21746                                             (SizeT )sizeof(unsigned int *));   21746                                             (SizeT )sizeof(unsigned int *));
21747       break;   21747       break;
21748     }   21748     }
21749     while (1) {   21749     while (1) {
21750       here___1 = layout->o_arg3;   21750       here___1 = layout->o_arg3;
21751       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   21751       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
21752                                  1L);   21752                                  1L);
21753       if (tmp___3) {   21753       if (tmp___3) {
21754     21754  
21755       } else {   21755       } else {
21756         vgPlain_assert_fail((Bool )1,   21756         vgPlain_assert_fail((Bool )1,
21757                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   21757                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
21758                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,   21758                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,
21759                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",   21759                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",
21760                             "");   21760                             "");
21761       }   21761       }
21762       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   21762       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
21763       if (tmp___4) {   21763       if (tmp___4) {
21764     21764  
21765       } else {   21765       } else {
21766         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21766         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21767                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,   21767                             (Char const   *)"m_syswrap/syswrap-generic.c", 4072,
21768                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",   21768                             (Char const   *)"vgSysWrap_generic_sys_waitpid_before",
21769                             "");   21769                             "");
21770       }   21770       }
21771       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21771       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21772                                             (Char *)"waitpid(options)",   21772                                             (Char *)"waitpid(options)",
21773                                             (PtrdiffT )here___1,   21773                                             (PtrdiffT )here___1,
21774                                             (SizeT )sizeof(int ));   21774                                             (SizeT )sizeof(int ));
21775       break;   21775       break;
21776     }   21776     }
21777   } else {   21777   } else {
21778     21778  
21779   }   21779   }
21780   if (arrghs->arg2 != (Addr )((void *)0)) {   21780   if (arrghs->arg2 != (Addr )((void *)0)) {
21781     while (1) {   21781     while (1) {
21782       if (vgPlain_tdict.track_pre_mem_write) {   21782       if (vgPlain_tdict.track_pre_mem_write) {
21783         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   21783         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
21784                                                (Char *)"waitpid(status)",   21784                                                (Char *)"waitpid(status)",
21785                                                arrghs->arg2,   21785                                                arrghs->arg2,
21786                                                (SizeT )sizeof(int ));   21786                                                (SizeT )sizeof(int ));
21787       } else {   21787       } else {
21788     21788  
21789       }   21789       }
21790       break;   21790       break;
21791     }   21791     }
21792   } else {   21792   } else {
21793     21793  
21794   }   21794   }
21795   return;   21795   return;
21796 }   21796 }
21797 }   21797 }
21798 void vgSysWrap_generic_sys_waitpid_after(ThreadId tid , SyscallArgs *arrghs ,   21798 void vgSysWrap_generic_sys_waitpid_after(ThreadId tid , SyscallArgs *arrghs ,
21799                                          SyscallStatus *status )   21799                                          SyscallStatus *status )
21800 {   21800 {
21801     21801  
21802     21802  
21803   {   21803   {
21804   if (arrghs->arg2 != (Addr )((void *)0)) {   21804   if (arrghs->arg2 != (Addr )((void *)0)) {
21805     while (1) {   21805     while (1) {
21806       if (vgPlain_tdict.track_post_mem_write) {   21806       if (vgPlain_tdict.track_post_mem_write) {
21807         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   21807         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
21808                                                 (SizeT )sizeof(int ));   21808                                                 (SizeT )sizeof(int ));
21809       } else {   21809       } else {
21810     21810  
21811       }   21811       }
21812       break;   21812       break;
21813     }   21813     }
21814   } else {   21814   } else {
21815     21815  
21816   }   21816   }
21817   return;   21817   return;
21818 }   21818 }
21819 }   21819 }
21820 void vgSysWrap_generic_sys_wait4_before(ThreadId tid ,   21820 void vgSysWrap_generic_sys_wait4_before(ThreadId tid ,
21821                                         SyscallArgLayout *layout ,   21821                                         SyscallArgLayout *layout ,
21822                                         SyscallArgs *arrghs ,   21822                                         SyscallArgs *arrghs ,
21823                                         SyscallStatus *status , UWord *flags )   21823                                         SyscallStatus *status , UWord *flags )
21824 {   21824 {
21825   Int here ;   21825   Int here ;
21826   long tmp ;   21826   long tmp ;
21827   long tmp___0 ;   21827   long tmp___0 ;
21828   Int here___0 ;   21828   Int here___0 ;
21829   long tmp___1 ;   21829   long tmp___1 ;
21830   long tmp___2 ;   21830   long tmp___2 ;
21831   Int here___1 ;   21831   Int here___1 ;
21832   long tmp___3 ;   21832   long tmp___3 ;
21833   long tmp___4 ;   21833   long tmp___4 ;
21834   Int here___2 ;   21834   Int here___2 ;
21835   long tmp___5 ;   21835   long tmp___5 ;
21836   long tmp___6 ;   21836   long tmp___6 ;
21837     21837  
21838   {   21838   {
21839   *flags |= (unsigned long )(1 << 1);   21839   *flags |= (unsigned long )(1 << 1);
21840   if (vgPlain_clo_trace_syscalls) {   21840   if (vgPlain_clo_trace_syscalls) {
21841     vgPlain_printf("sys_wait4 ( %ld, %#lx, %ld, %#lx )", arrghs->arg1,   21841     vgPlain_printf("sys_wait4 ( %ld, %#lx, %ld, %#lx )", arrghs->arg1,
21842                    arrghs->arg2, arrghs->arg3, arrghs->arg4);   21842                    arrghs->arg2, arrghs->arg3, arrghs->arg4);
21843   } else {   21843   } else {
21844     21844  
21845   }   21845   }
21846   if (vgPlain_tdict.track_pre_reg_read) {   21846   if (vgPlain_tdict.track_pre_reg_read) {
21847     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21847     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21848                                           (Char *)"(syscallno)",   21848                                           (Char *)"(syscallno)",
21849                                           (PtrdiffT )layout->o_sysno,   21849                                           (PtrdiffT )layout->o_sysno,
21850                                           (SizeT )sizeof(UWord ));   21850                                           (SizeT )sizeof(UWord ));
21851     while (1) {   21851     while (1) {
21852       here = layout->o_arg1;   21852       here = layout->o_arg1;
21853       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),   21853       tmp = __builtin_expect((long )(! (! (sizeof(vki_pid_t ) <= sizeof(UWord )))),
21854                              1L);   21854                              1L);
21855       if (tmp) {   21855       if (tmp) {
21856     21856  
21857       } else {   21857       } else {
21858         vgPlain_assert_fail((Bool )1,   21858         vgPlain_assert_fail((Bool )1,
21859                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",   21859                             (Char const   *)"sizeof(vki_pid_t) <= sizeof(UWord)",
21860                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21860                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21861                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21861                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21862                             "");   21862                             "");
21863       }   21863       }
21864       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   21864       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
21865       if (tmp___0) {   21865       if (tmp___0) {
21866     21866  
21867       } else {   21867       } else {
21868         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21868         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21869                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21869                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21870                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21870                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21871                             "");   21871                             "");
21872       }   21872       }
21873       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21873       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21874                                             (Char *)"wait4(pid)",   21874                                             (Char *)"wait4(pid)",
21875                                             (PtrdiffT )here,   21875                                             (PtrdiffT )here,
21876                                             (SizeT )sizeof(vki_pid_t ));   21876                                             (SizeT )sizeof(vki_pid_t ));
21877       break;   21877       break;
21878     }   21878     }
21879     while (1) {   21879     while (1) {
21880       here___0 = layout->o_arg2;   21880       here___0 = layout->o_arg2;
21881       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int *) <= sizeof(UWord )))),   21881       tmp___1 = __builtin_expect((long )(! (! (sizeof(unsigned int *) <= sizeof(UWord )))),
21882                                  1L);   21882                                  1L);
21883       if (tmp___1) {   21883       if (tmp___1) {
21884     21884  
21885       } else {   21885       } else {
21886         vgPlain_assert_fail((Bool )1,   21886         vgPlain_assert_fail((Bool )1,
21887                             (Char const   *)"sizeof(unsigned int *) <= sizeof(UWord)",   21887                             (Char const   *)"sizeof(unsigned int *) <= sizeof(UWord)",
21888                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21888                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21889                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21889                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21890                             "");   21890                             "");
21891       }   21891       }
21892       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   21892       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
21893       if (tmp___2) {   21893       if (tmp___2) {
21894     21894  
21895       } else {   21895       } else {
21896         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21896         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21897                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21897                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21898                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21898                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21899                             "");   21899                             "");
21900       }   21900       }
21901       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21901       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21902                                             (Char *)"wait4(status)",   21902                                             (Char *)"wait4(status)",
21903                                             (PtrdiffT )here___0,   21903                                             (PtrdiffT )here___0,
21904                                             (SizeT )sizeof(unsigned int *));   21904                                             (SizeT )sizeof(unsigned int *));
21905       break;   21905       break;
21906     }   21906     }
21907     while (1) {   21907     while (1) {
21908       here___1 = layout->o_arg3;   21908       here___1 = layout->o_arg3;
21909       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),   21909       tmp___3 = __builtin_expect((long )(! (! (sizeof(int ) <= sizeof(UWord )))),
21910                                  1L);   21910                                  1L);
21911       if (tmp___3) {   21911       if (tmp___3) {
21912     21912  
21913       } else {   21913       } else {
21914         vgPlain_assert_fail((Bool )1,   21914         vgPlain_assert_fail((Bool )1,
21915                             (Char const   *)"sizeof(int) <= sizeof(UWord)",   21915                             (Char const   *)"sizeof(int) <= sizeof(UWord)",
21916                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21916                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21917                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21917                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21918                             "");   21918                             "");
21919       }   21919       }
21920       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   21920       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
21921       if (tmp___4) {   21921       if (tmp___4) {
21922     21922  
21923       } else {   21923       } else {
21924         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21924         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21925                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21925                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21926                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21926                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21927                             "");   21927                             "");
21928       }   21928       }
21929       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21929       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21930                                             (Char *)"wait4(options)",   21930                                             (Char *)"wait4(options)",
21931                                             (PtrdiffT )here___1,   21931                                             (PtrdiffT )here___1,
21932                                             (SizeT )sizeof(int ));   21932                                             (SizeT )sizeof(int ));
21933       break;   21933       break;
21934     }   21934     }
21935     while (1) {   21935     while (1) {
21936       here___2 = layout->o_arg4;   21936       here___2 = layout->o_arg4;
21937       tmp___5 = __builtin_expect((long )(! (! (sizeof(struct rusage *) <= sizeof(UWord )))),   21937       tmp___5 = __builtin_expect((long )(! (! (sizeof(struct rusage *) <= sizeof(UWord )))),
21938                                  1L);   21938                                  1L);
21939       if (tmp___5) {   21939       if (tmp___5) {
21940     21940  
21941       } else {   21941       } else {
21942         vgPlain_assert_fail((Bool )1,   21942         vgPlain_assert_fail((Bool )1,
21943                             (Char const   *)"sizeof(struct rusage *) <= sizeof(UWord)",   21943                             (Char const   *)"sizeof(struct rusage *) <= sizeof(UWord)",
21944                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21944                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21945                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21945                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21946                             "");   21946                             "");
21947       }   21947       }
21948       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);   21948       tmp___6 = __builtin_expect((long )(! (! (here___2 >= 0))), 1L);
21949       if (tmp___6) {   21949       if (tmp___6) {
21950     21950  
21951       } else {   21951       } else {
21952         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   21952         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
21953                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,   21953                             (Char const   *)"m_syswrap/syswrap-generic.c", 4091,
21954                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",   21954                             (Char const   *)"vgSysWrap_generic_sys_wait4_before",
21955                             "");   21955                             "");
21956       }   21956       }
21957       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   21957       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
21958                                             (Char *)"wait4(rusage)",   21958                                             (Char *)"wait4(rusage)",
21959                                             (PtrdiffT )here___2,   21959                                             (PtrdiffT )here___2,
21960                                             (SizeT )sizeof(struct rusage *));   21960                                             (SizeT )sizeof(struct rusage *));
21961       break;   21961       break;
21962     }   21962     }
21963   } else {   21963   } else {
21964     21964  
21965   }   21965   }
21966   if (arrghs->arg2 != (Addr )((void *)0)) {   21966   if (arrghs->arg2 != (Addr )((void *)0)) {
21967     while (1) {   21967     while (1) {
21968       if (vgPlain_tdict.track_pre_mem_write) {   21968       if (vgPlain_tdict.track_pre_mem_write) {
21969         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   21969         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
21970                                                (Char *)"wait4(status)",   21970                                                (Char *)"wait4(status)",
21971                                                arrghs->arg2,   21971                                                arrghs->arg2,
21972                                                (SizeT )sizeof(int ));   21972                                                (SizeT )sizeof(int ));
21973       } else {   21973       } else {
21974     21974  
21975       }   21975       }
21976       break;   21976       break;
21977     }   21977     }
21978   } else {   21978   } else {
21979     21979  
21980   }   21980   }
21981   if (arrghs->arg4 != (Addr )((void *)0)) {   21981   if (arrghs->arg4 != (Addr )((void *)0)) {
21982     while (1) {   21982     while (1) {
21983       if (vgPlain_tdict.track_pre_mem_write) {   21983       if (vgPlain_tdict.track_pre_mem_write) {
21984         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   21984         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
21985                                                (Char *)"wait4(rusage)",   21985                                                (Char *)"wait4(rusage)",
21986                                                arrghs->arg4,   21986                                                arrghs->arg4,
21987                                                (SizeT )sizeof(struct vki_rusage ));   21987                                                (SizeT )sizeof(struct vki_rusage ));
21988       } else {   21988       } else {
21989     21989  
21990       }   21990       }
21991       break;   21991       break;
21992     }   21992     }
21993   } else {   21993   } else {
21994     21994  
21995   }   21995   }
21996   return;   21996   return;
21997 }   21997 }
21998 }   21998 }
21999 void vgSysWrap_generic_sys_wait4_after(ThreadId tid , SyscallArgs *arrghs ,   21999 void vgSysWrap_generic_sys_wait4_after(ThreadId tid , SyscallArgs *arrghs ,
22000                                        SyscallStatus *status )   22000                                        SyscallStatus *status )
22001 {   22001 {
22002     22002  
22003     22003  
22004   {   22004   {
22005   if (arrghs->arg2 != (Addr )((void *)0)) {   22005   if (arrghs->arg2 != (Addr )((void *)0)) {
22006     while (1) {   22006     while (1) {
22007       if (vgPlain_tdict.track_post_mem_write) {   22007       if (vgPlain_tdict.track_post_mem_write) {
22008         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,   22008         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg2,
22009                                                 (SizeT )sizeof(int ));   22009                                                 (SizeT )sizeof(int ));
22010       } else {   22010       } else {
22011     22011  
22012       }   22012       }
22013       break;   22013       break;
22014     }   22014     }
22015   } else {   22015   } else {
22016     22016  
22017   }   22017   }
22018   if (arrghs->arg4 != (Addr )((void *)0)) {   22018   if (arrghs->arg4 != (Addr )((void *)0)) {
22019     while (1) {   22019     while (1) {
22020       if (vgPlain_tdict.track_post_mem_write) {   22020       if (vgPlain_tdict.track_post_mem_write) {
22021         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg4,   22021         (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid, arrghs->arg4,
22022                                                 (SizeT )sizeof(struct vki_rusage ));   22022                                                 (SizeT )sizeof(struct vki_rusage ));
22023       } else {   22023       } else {
22024     22024  
22025       }   22025       }
22026       break;   22026       break;
22027     }   22027     }
22028   } else {   22028   } else {
22029     22029  
22030   }   22030   }
22031   return;   22031   return;
22032 }   22032 }
22033 }   22033 }
22034 void vgSysWrap_generic_sys_writev_before(ThreadId tid ,   22034 void vgSysWrap_generic_sys_writev_before(ThreadId tid ,
22035                                          SyscallArgLayout *layout ,   22035                                          SyscallArgLayout *layout ,
22036                                          SyscallArgs *arrghs ,   22036                                          SyscallArgs *arrghs ,
22037                                          SyscallStatus *status , UWord *flags )   22037                                          SyscallStatus *status , UWord *flags )
22038 {   22038 {
22039   Int i ;   22039   Int i ;
22040   struct vki_iovec *vec ;   22040   struct vki_iovec *vec ;
22041   Int here ;   22041   Int here ;
22042   long tmp ;   22042   long tmp ;
22043   long tmp___0 ;   22043   long tmp___0 ;
22044   Int here___0 ;   22044   Int here___0 ;
22045   long tmp___1 ;   22045   long tmp___1 ;
22046   long tmp___2 ;   22046   long tmp___2 ;
22047   Int here___1 ;   22047   Int here___1 ;
22048   long tmp___3 ;   22048   long tmp___3 ;
22049   long tmp___4 ;   22049   long tmp___4 ;
22050   Word wzz ;   22050   Word wzz ;
22051   int tmp___5 ;   22051   int tmp___5 ;
22052   long tmp___6 ;   22052   long tmp___6 ;
22053   Bool tmp___7 ;   22053   Bool tmp___7 ;
22054     22054  
22055   {   22055   {
22056   *flags |= (unsigned long )(1 << 1);   22056   *flags |= (unsigned long )(1 << 1);
22057   if (vgPlain_clo_trace_syscalls) {   22057   if (vgPlain_clo_trace_syscalls) {
22058     vgPlain_printf("sys_writev ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,   22058     vgPlain_printf("sys_writev ( %ld, %#lx, %llu )", arrghs->arg1, arrghs->arg2,
22059                    (ULong )arrghs->arg3);   22059                    (ULong )arrghs->arg3);
22060   } else {   22060   } else {
22061     22061  
22062   }   22062   }
22063   if (vgPlain_tdict.track_pre_reg_read) {   22063   if (vgPlain_tdict.track_pre_reg_read) {
22064     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22064     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22065                                           (Char *)"(syscallno)",   22065                                           (Char *)"(syscallno)",
22066                                           (PtrdiffT )layout->o_sysno,   22066                                           (PtrdiffT )layout->o_sysno,
22067                                           (SizeT )sizeof(UWord ));   22067                                           (SizeT )sizeof(UWord ));
22068     while (1) {   22068     while (1) {
22069       here = layout->o_arg1;   22069       here = layout->o_arg1;
22070       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   22070       tmp = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
22071                              1L);   22071                              1L);
22072       if (tmp) {   22072       if (tmp) {
22073     22073  
22074       } else {   22074       } else {
22075         vgPlain_assert_fail((Bool )1,   22075         vgPlain_assert_fail((Bool )1,
22076                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   22076                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
22077                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,   22077                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,
22078                             (Char const   *)"vgSysWrap_generic_sys_writev_before",   22078                             (Char const   *)"vgSysWrap_generic_sys_writev_before",
22079                             "");   22079                             "");
22080       }   22080       }
22081       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   22081       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
22082       if (tmp___0) {   22082       if (tmp___0) {
22083     22083  
22084       } else {   22084       } else {
22085         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22085         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22086                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,   22086                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,
22087                             (Char const   *)"vgSysWrap_generic_sys_writev_before",   22087                             (Char const   *)"vgSysWrap_generic_sys_writev_before",
22088                             "");   22088                             "");
22089       }   22089       }
22090       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22090       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22091                                             (Char *)"writev(fd)",   22091                                             (Char *)"writev(fd)",
22092                                             (PtrdiffT )here,   22092                                             (PtrdiffT )here,
22093                                             (SizeT )sizeof(unsigned long ));   22093                                             (SizeT )sizeof(unsigned long ));
22094       break;   22094       break;
22095     }   22095     }
22096     while (1) {   22096     while (1) {
22097       here___0 = layout->o_arg2;   22097       here___0 = layout->o_arg2;
22098       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct iovec  const  *) <= sizeof(UWord )))),   22098       tmp___1 = __builtin_expect((long )(! (! (sizeof(struct iovec  const  *) <= sizeof(UWord )))),
22099                                  1L);   22099                                  1L);
22100       if (tmp___1) {   22100       if (tmp___1) {
22101     22101  
22102       } else {   22102       } else {
22103         vgPlain_assert_fail((Bool )1,   22103         vgPlain_assert_fail((Bool )1,
22104                             (Char const   *)"sizeof(const struct iovec *) <= sizeof(UWord)",   22104                             (Char const   *)"sizeof(const struct iovec *) <= sizeof(UWord)",
22105                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,   22105                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,
22106                             (Char const   *)"vgSysWrap_generic_sys_writev_before",   22106                             (Char const   *)"vgSysWrap_generic_sys_writev_before",
22107                             "");   22107                             "");
22108       }   22108       }
22109       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   22109       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
22110       if (tmp___2) {   22110       if (tmp___2) {
22111     22111  
22112       } else {   22112       } else {
22113         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22113         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22114                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,   22114                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,
22115                             (Char const   *)"vgSysWrap_generic_sys_writev_before",   22115                             (Char const   *)"vgSysWrap_generic_sys_writev_before",
22116                             "");   22116                             "");
22117       }   22117       }
22118       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22118       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22119                                             (Char *)"writev(vector)",   22119                                             (Char *)"writev(vector)",
22120                                             (PtrdiffT )here___0,   22120                                             (PtrdiffT )here___0,
22121                                             (SizeT )sizeof(struct iovec  const  *));   22121                                             (SizeT )sizeof(struct iovec  const  *));
22122       break;   22122       break;
22123     }   22123     }
22124     while (1) {   22124     while (1) {
22125       here___1 = layout->o_arg3;   22125       here___1 = layout->o_arg3;
22126       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),   22126       tmp___3 = __builtin_expect((long )(! (! (sizeof(unsigned long ) <= sizeof(UWord )))),
22127                                  1L);   22127                                  1L);
22128       if (tmp___3) {   22128       if (tmp___3) {
22129     22129  
22130       } else {   22130       } else {
22131         vgPlain_assert_fail((Bool )1,   22131         vgPlain_assert_fail((Bool )1,
22132                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",   22132                             (Char const   *)"sizeof(unsigned long) <= sizeof(UWord)",
22133                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,   22133                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,
22134                             (Char const   *)"vgSysWrap_generic_sys_writev_before",   22134                             (Char const   *)"vgSysWrap_generic_sys_writev_before",
22135                             "");   22135                             "");
22136       }   22136       }
22137       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);   22137       tmp___4 = __builtin_expect((long )(! (! (here___1 >= 0))), 1L);
22138       if (tmp___4) {   22138       if (tmp___4) {
22139     22139  
22140       } else {   22140       } else {
22141         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22141         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22142                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,   22142                             (Char const   *)"m_syswrap/syswrap-generic.c", 4114,
22143                             (Char const   *)"vgSysWrap_generic_sys_writev_before",   22143                             (Char const   *)"vgSysWrap_generic_sys_writev_before",
22144                             "");   22144                             "");
22145       }   22145       }
22146       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22146       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22147                                             (Char *)"writev(count)",   22147                                             (Char *)"writev(count)",
22148                                             (PtrdiffT )here___1,   22148                                             (PtrdiffT )here___1,
22149                                             (SizeT )sizeof(unsigned long ));   22149                                             (SizeT )sizeof(unsigned long ));
22150       break;   22150       break;
22151     }   22151     }
22152   } else {   22152   } else {
22153     22153  
22154   }   22154   }
22155   tmp___7 = vgModuleLocal_fd_allowed((Int )arrghs->arg1,   22155   tmp___7 = vgModuleLocal_fd_allowed((Int )arrghs->arg1,
22156                                      (Char const   *)"writev", tid, (Bool )0);   22156                                      (Char const   *)"writev", tid, (Bool )0);
22157   if (tmp___7) {   22157   if (tmp___7) {
22158     while (1) {   22158     while (1) {
22159       if (vgPlain_tdict.track_pre_mem_read) {   22159       if (vgPlain_tdict.track_pre_mem_read) {
22160         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22160         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22161                                               (Char *)"writev(vector)",   22161                                               (Char *)"writev(vector)",
22162                                               arrghs->arg2,   22162                                               arrghs->arg2,
22163                                               arrghs->arg3 * (UWord )sizeof(struct vki_iovec ));   22163                                               arrghs->arg3 * (UWord )sizeof(struct vki_iovec ));
22164       } else {   22164       } else {
22165     22165  
22166       }   22166       }
22167       break;   22167       break;
22168     }   22168     }
22169     if (arrghs->arg2 != 0UL) {   22169     if (arrghs->arg2 != 0UL) {
22170       vec = (struct vki_iovec *)arrghs->arg2;   22170       vec = (struct vki_iovec *)arrghs->arg2;
22171       i = 0;   22171       i = 0;
22172       while (i < (Int )arrghs->arg3) {   22172       while (i < (Int )arrghs->arg3) {
22173         while (1) {   22173         while (1) {
22174           if (vgPlain_tdict.track_pre_mem_read) {   22174           if (vgPlain_tdict.track_pre_mem_read) {
22175             (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22175             (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22176                                                   (Char *)"writev(vector[...])",   22176                                                   (Char *)"writev(vector[...])",
22177                                                   (Addr )(vec + i)->iov_base,   22177                                                   (Addr )(vec + i)->iov_base,
22178                                                   (SizeT )(vec + i)->iov_len);   22178                                                   (SizeT )(vec + i)->iov_len);
22179           } else {   22179           } else {
22180     22180  
22181           }   22181           }
22182           break;   22182           break;
22183         }   22183         }
22184         i ++;   22184         i ++;
22185       }   22185       }
22186     } else {   22186     } else {
22187     22187  
22188     }   22188     }
22189   } else {   22189   } else {
22190     while (1) {   22190     while (1) {
22191       wzz = (Word )9;   22191       wzz = (Word )9;
22192       if (wzz >= 0L) {   22192       if (wzz >= 0L) {
22193         if (wzz < 10000L) {   22193         if (wzz < 10000L) {
22194           tmp___5 = 1;   22194           tmp___5 = 1;
22195         } else {   22195         } else {
22196           tmp___5 = 0;   22196           tmp___5 = 0;
22197         }   22197         }
22198       } else {   22198       } else {
22199         tmp___5 = 0;   22199         tmp___5 = 0;
22200       }   22200       }
22201       tmp___6 = __builtin_expect((long )tmp___5, 1L);   22201       tmp___6 = __builtin_expect((long )tmp___5, 1L);
22202       if (tmp___6) {   22202       if (tmp___6) {
22203     22203  
22204       } else {   22204       } else {
22205         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",   22205         vgPlain_assert_fail((Bool )1, (Char const   *)"wzz >= 0 && wzz < 10000",
22206                             (Char const   *)"m_syswrap/syswrap-generic.c", 4116,   22206                             (Char const   *)"m_syswrap/syswrap-generic.c", 4116,
22207                             (Char const   *)"vgSysWrap_generic_sys_writev_before",   22207                             (Char const   *)"vgSysWrap_generic_sys_writev_before",
22208                             "");   22208                             "");
22209       }   22209       }
22210       status->what = (enum __anonenum_what_133 )1;   22210       status->what = (enum __anonenum_what_133 )1;
22211       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);   22211       status->sres = vgPlain_mk_SysRes_Error((UWord )wzz);
22212       break;   22212       break;
22213     }   22213     }
22214   }   22214   }
22215   return;   22215   return;
22216 }   22216 }
22217 }   22217 }
22218 void vgSysWrap_generic_sys_utimes_before(ThreadId tid ,   22218 void vgSysWrap_generic_sys_utimes_before(ThreadId tid ,
22219                                          SyscallArgLayout *layout ,   22219                                          SyscallArgLayout *layout ,
22220                                          SyscallArgs *arrghs ,   22220                                          SyscallArgs *arrghs ,
22221                                          SyscallStatus *status , UWord *flags )   22221                                          SyscallStatus *status , UWord *flags )
22222 {   22222 {
22223   Char *tmp ;   22223   Char *tmp ;
22224   Int here ;   22224   Int here ;
22225   long tmp___0 ;   22225   long tmp___0 ;
22226   long tmp___1 ;   22226   long tmp___1 ;
22227   Int here___0 ;   22227   Int here___0 ;
22228   long tmp___2 ;   22228   long tmp___2 ;
22229   long tmp___3 ;   22229   long tmp___3 ;
22230   struct vki_timeval *zztv ;   22230   struct vki_timeval *zztv ;
22231   struct vki_timeval *zztv___0 ;   22231   struct vki_timeval *zztv___0 ;
22232     22232  
22233   {   22233   {
22234   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,   22234   tmp = vgPlain_strstr((Char const   *)vgPlain_clo_sim_hints,
22235                        (Char *)"fuse-compatible");   22235                        (Char *)"fuse-compatible");
22236   if (tmp) {   22236   if (tmp) {
22237     *flags |= (unsigned long )(1 << 1);   22237     *flags |= (unsigned long )(1 << 1);
22238   } else {   22238   } else {
22239     22239  
22240   }   22240   }
22241   if (vgPlain_clo_trace_syscalls) {   22241   if (vgPlain_clo_trace_syscalls) {
22242     vgPlain_printf("sys_utimes ( %#lx(%s), %#lx )", arrghs->arg1,   22242     vgPlain_printf("sys_utimes ( %#lx(%s), %#lx )", arrghs->arg1,
22243                    (char *)arrghs->arg1, arrghs->arg2);   22243                    (char *)arrghs->arg1, arrghs->arg2);
22244   } else {   22244   } else {
22245     22245  
22246   }   22246   }
22247   if (vgPlain_tdict.track_pre_reg_read) {   22247   if (vgPlain_tdict.track_pre_reg_read) {
22248     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22248     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22249                                           (Char *)"(syscallno)",   22249                                           (Char *)"(syscallno)",
22250                                           (PtrdiffT )layout->o_sysno,   22250                                           (PtrdiffT )layout->o_sysno,
22251                                           (SizeT )sizeof(UWord ));   22251                                           (SizeT )sizeof(UWord ));
22252     while (1) {   22252     while (1) {
22253       here = layout->o_arg1;   22253       here = layout->o_arg1;
22254       tmp___0 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),   22254       tmp___0 = __builtin_expect((long )(! (! (sizeof(char *) <= sizeof(UWord )))),
22255                                  1L);   22255                                  1L);
22256       if (tmp___0) {   22256       if (tmp___0) {
22257     22257  
22258       } else {   22258       } else {
22259         vgPlain_assert_fail((Bool )1,   22259         vgPlain_assert_fail((Bool )1,
22260                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",   22260                             (Char const   *)"sizeof(char *) <= sizeof(UWord)",
22261                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,   22261                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,
22262                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",   22262                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",
22263                             "");   22263                             "");
22264       }   22264       }
22265       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);   22265       tmp___1 = __builtin_expect((long )(! (! (here >= 0))), 1L);
22266       if (tmp___1) {   22266       if (tmp___1) {
22267     22267  
22268       } else {   22268       } else {
22269         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22269         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22270                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,   22270                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,
22271                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",   22271                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",
22272                             "");   22272                             "");
22273       }   22273       }
22274       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22274       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22275                                             (Char *)"utimes(filename)",   22275                                             (Char *)"utimes(filename)",
22276                                             (PtrdiffT )here,   22276                                             (PtrdiffT )here,
22277                                             (SizeT )sizeof(char *));   22277                                             (SizeT )sizeof(char *));
22278       break;   22278       break;
22279     }   22279     }
22280     while (1) {   22280     while (1) {
22281       here___0 = layout->o_arg2;   22281       here___0 = layout->o_arg2;
22282       tmp___2 = __builtin_expect((long )(! (! (sizeof(struct timeval *) <= sizeof(UWord )))),   22282       tmp___2 = __builtin_expect((long )(! (! (sizeof(struct timeval *) <= sizeof(UWord )))),
22283                                  1L);   22283                                  1L);
22284       if (tmp___2) {   22284       if (tmp___2) {
22285     22285  
22286       } else {   22286       } else {
22287         vgPlain_assert_fail((Bool )1,   22287         vgPlain_assert_fail((Bool )1,
22288                             (Char const   *)"sizeof(struct timeval *) <= sizeof(UWord)",   22288                             (Char const   *)"sizeof(struct timeval *) <= sizeof(UWord)",
22289                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,   22289                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,
22290                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",   22290                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",
22291                             "");   22291                             "");
22292       }   22292       }
22293       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   22293       tmp___3 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
22294       if (tmp___3) {   22294       if (tmp___3) {
22295     22295  
22296       } else {   22296       } else {
22297         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22297         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22298                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,   22298                             (Char const   *)"m_syswrap/syswrap-generic.c", 4134,
22299                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",   22299                             (Char const   *)"vgSysWrap_generic_sys_utimes_before",
22300                             "");   22300                             "");
22301       }   22301       }
22302       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22302       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22303                                             (Char *)"utimes(tvp)",   22303                                             (Char *)"utimes(tvp)",
22304                                             (PtrdiffT )here___0,   22304                                             (PtrdiffT )here___0,
22305                                             (SizeT )sizeof(struct timeval *));   22305                                             (SizeT )sizeof(struct timeval *));
22306       break;   22306       break;
22307     }   22307     }
22308   } else {   22308   } else {
22309     22309  
22310   }   22310   }
22311   while (1) {   22311   while (1) {
22312     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   22312     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
22313       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   22313       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
22314                                                    (Char *)"utimes(filename)",   22314                                                    (Char *)"utimes(filename)",
22315                                                    arrghs->arg1);   22315                                                    arrghs->arg1);
22316     } else {   22316     } else {
22317     22317  
22318     }   22318     }
22319     break;   22319     break;
22320   }   22320   }
22321   if (arrghs->arg2 != 0UL) {   22321   if (arrghs->arg2 != 0UL) {
22322     while (1) {   22322     while (1) {
22323       zztv = (struct vki_timeval *)arrghs->arg2;   22323       zztv = (struct vki_timeval *)arrghs->arg2;
22324       while (1) {   22324       while (1) {
22325         if (vgPlain_tdict.track_pre_mem_read) {   22325         if (vgPlain_tdict.track_pre_mem_read) {
22326           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22326           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22327                                                 (Char *)"utimes(tvp[0])",   22327                                                 (Char *)"utimes(tvp[0])",
22328                                                 (UWord )(& zztv->tv_sec),   22328                                                 (UWord )(& zztv->tv_sec),
22329                                                 (SizeT )sizeof(zztv->tv_sec));   22329                                                 (SizeT )sizeof(zztv->tv_sec));
22330         } else {   22330         } else {
22331     22331  
22332         }   22332         }
22333         break;   22333         break;
22334       }   22334       }
22335       while (1) {   22335       while (1) {
22336         if (vgPlain_tdict.track_pre_mem_read) {   22336         if (vgPlain_tdict.track_pre_mem_read) {
22337           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22337           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22338                                                 (Char *)"utimes(tvp[0])",   22338                                                 (Char *)"utimes(tvp[0])",
22339                                                 (UWord )(& zztv->tv_usec),   22339                                                 (UWord )(& zztv->tv_usec),
22340                                                 (SizeT )sizeof(zztv->tv_usec));   22340                                                 (SizeT )sizeof(zztv->tv_usec));
22341         } else {   22341         } else {
22342     22342  
22343         }   22343         }
22344         break;   22344         break;
22345       }   22345       }
22346       break;   22346       break;
22347     }   22347     }
22348     while (1) {   22348     while (1) {
22349       zztv___0 = (struct vki_timeval *)(arrghs->arg2 + (UWord )sizeof(struct vki_timeval ));   22349       zztv___0 = (struct vki_timeval *)(arrghs->arg2 + (UWord )sizeof(struct vki_timeval ));
22350       while (1) {   22350       while (1) {
22351         if (vgPlain_tdict.track_pre_mem_read) {   22351         if (vgPlain_tdict.track_pre_mem_read) {
22352           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22352           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22353                                                 (Char *)"utimes(tvp[1])",   22353                                                 (Char *)"utimes(tvp[1])",
22354                                                 (UWord )(& zztv___0->tv_sec),   22354                                                 (UWord )(& zztv___0->tv_sec),
22355                                                 (SizeT )sizeof(zztv___0->tv_sec));   22355                                                 (SizeT )sizeof(zztv___0->tv_sec));
22356         } else {   22356         } else {
22357     22357  
22358         }   22358         }
22359         break;   22359         break;
22360       }   22360       }
22361       while (1) {   22361       while (1) {
22362         if (vgPlain_tdict.track_pre_mem_read) {   22362         if (vgPlain_tdict.track_pre_mem_read) {
22363           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22363           (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22364                                                 (Char *)"utimes(tvp[1])",   22364                                                 (Char *)"utimes(tvp[1])",
22365                                                 (UWord )(& zztv___0->tv_usec),   22365                                                 (UWord )(& zztv___0->tv_usec),
22366                                                 (SizeT )sizeof(zztv___0->tv_usec));   22366                                                 (SizeT )sizeof(zztv___0->tv_usec));
22367         } else {   22367         } else {
22368     22368  
22369         }   22369         }
22370         break;   22370         break;
22371       }   22371       }
22372       break;   22372       break;
22373     }   22373     }
22374   } else {   22374   } else {
22375     22375  
22376   }   22376   }
22377   return;   22377   return;
22378 }   22378 }
22379 }   22379 }
22380 void vgSysWrap_generic_sys_acct_before(ThreadId tid , SyscallArgLayout *layout ,   22380 void vgSysWrap_generic_sys_acct_before(ThreadId tid , SyscallArgLayout *layout ,
22381                                        SyscallArgs *arrghs ,   22381                                        SyscallArgs *arrghs ,
22382                                        SyscallStatus *status , UWord *flags )   22382                                        SyscallStatus *status , UWord *flags )
22383 {   22383 {
22384   Int here ;   22384   Int here ;
22385   long tmp ;   22385   long tmp ;
22386   long tmp___0 ;   22386   long tmp___0 ;
22387     22387  
22388   {   22388   {
22389   if (vgPlain_clo_trace_syscalls) {   22389   if (vgPlain_clo_trace_syscalls) {
22390     vgPlain_printf("sys_acct ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);   22390     vgPlain_printf("sys_acct ( %#lx(%s) )", arrghs->arg1, (char *)arrghs->arg1);
22391   } else {   22391   } else {
22392     22392  
22393   }   22393   }
22394   if (vgPlain_tdict.track_pre_reg_read) {   22394   if (vgPlain_tdict.track_pre_reg_read) {
22395     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22395     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22396                                           (Char *)"(syscallno)",   22396                                           (Char *)"(syscallno)",
22397                                           (PtrdiffT )layout->o_sysno,   22397                                           (PtrdiffT )layout->o_sysno,
22398                                           (SizeT )sizeof(UWord ));   22398                                           (SizeT )sizeof(UWord ));
22399     while (1) {   22399     while (1) {
22400       here = layout->o_arg1;   22400       here = layout->o_arg1;
22401       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),   22401       tmp = __builtin_expect((long )(! (! (sizeof(char const   *) <= sizeof(UWord )))),
22402                              1L);   22402                              1L);
22403       if (tmp) {   22403       if (tmp) {
22404     22404  
22405       } else {   22405       } else {
22406         vgPlain_assert_fail((Bool )1,   22406         vgPlain_assert_fail((Bool )1,
22407                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",   22407                             (Char const   *)"sizeof(const char *) <= sizeof(UWord)",
22408                             (Char const   *)"m_syswrap/syswrap-generic.c", 4145,   22408                             (Char const   *)"m_syswrap/syswrap-generic.c", 4145,
22409                             (Char const   *)"vgSysWrap_generic_sys_acct_before",   22409                             (Char const   *)"vgSysWrap_generic_sys_acct_before",
22410                             "");   22410                             "");
22411       }   22411       }
22412       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   22412       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
22413       if (tmp___0) {   22413       if (tmp___0) {
22414     22414  
22415       } else {   22415       } else {
22416         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22416         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22417                             (Char const   *)"m_syswrap/syswrap-generic.c", 4145,   22417                             (Char const   *)"m_syswrap/syswrap-generic.c", 4145,
22418                             (Char const   *)"vgSysWrap_generic_sys_acct_before",   22418                             (Char const   *)"vgSysWrap_generic_sys_acct_before",
22419                             "");   22419                             "");
22420       }   22420       }
22421       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22421       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22422                                             (Char *)"acct(filename)",   22422                                             (Char *)"acct(filename)",
22423                                             (PtrdiffT )here,   22423                                             (PtrdiffT )here,
22424                                             (SizeT )sizeof(char const   *));   22424                                             (SizeT )sizeof(char const   *));
22425       break;   22425       break;
22426     }   22426     }
22427   } else {   22427   } else {
22428     22428  
22429   }   22429   }
22430   while (1) {   22430   while (1) {
22431     if (vgPlain_tdict.track_pre_mem_read_asciiz) {   22431     if (vgPlain_tdict.track_pre_mem_read_asciiz) {
22432       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,   22432       (*(vgPlain_tdict.track_pre_mem_read_asciiz))((CorePart )3, tid,
22433                                                    (Char *)"acct(filename)",   22433                                                    (Char *)"acct(filename)",
22434                                                    arrghs->arg1);   22434                                                    arrghs->arg1);
22435     } else {   22435     } else {
22436     22436  
22437     }   22437     }
22438     break;   22438     break;
22439   }   22439   }
22440   return;   22440   return;
22441 }   22441 }
22442 }   22442 }
22443 void vgSysWrap_generic_sys_pause_before(ThreadId tid ,   22443 void vgSysWrap_generic_sys_pause_before(ThreadId tid ,
22444                                         SyscallArgLayout *layout ,   22444                                         SyscallArgLayout *layout ,
22445                                         SyscallArgs *arrghs ,   22445                                         SyscallArgs *arrghs ,
22446                                         SyscallStatus *status , UWord *flags )   22446                                         SyscallStatus *status , UWord *flags )
22447 {   22447 {
22448     22448  
22449     22449  
22450   {   22450   {
22451   *flags |= (unsigned long )(1 << 1);   22451   *flags |= (unsigned long )(1 << 1);
22452   if (vgPlain_clo_trace_syscalls) {   22452   if (vgPlain_clo_trace_syscalls) {
22453     vgPlain_printf("sys_pause ( )");   22453     vgPlain_printf("sys_pause ( )");
22454   } else {   22454   } else {
22455     22455  
22456   }   22456   }
22457   if (vgPlain_tdict.track_pre_reg_read) {   22457   if (vgPlain_tdict.track_pre_reg_read) {
22458     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22458     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22459                                           (Char *)"(syscallno)",   22459                                           (Char *)"(syscallno)",
22460                                           (PtrdiffT )layout->o_sysno,   22460                                           (PtrdiffT )layout->o_sysno,
22461                                           (SizeT )sizeof(UWord ));   22461                                           (SizeT )sizeof(UWord ));
22462   } else {   22462   } else {
22463     22463  
22464   }   22464   }
22465   return;   22465   return;
22466 }   22466 }
22467 }   22467 }
22468 void vgSysWrap_generic_sys_sigaltstack_before(ThreadId tid ,   22468 void vgSysWrap_generic_sys_sigaltstack_before(ThreadId tid ,
22469                                               SyscallArgLayout *layout ,   22469                                               SyscallArgLayout *layout ,
22470                                               SyscallArgs *arrghs ,   22470                                               SyscallArgs *arrghs ,
22471                                               SyscallStatus *status ,   22471                                               SyscallStatus *status ,
22472                                               UWord *flags )   22472                                               UWord *flags )
22473 {   22473 {
22474   Int here ;   22474   Int here ;
22475   long tmp ;   22475   long tmp ;
22476   long tmp___0 ;   22476   long tmp___0 ;
22477   Int here___0 ;   22477   Int here___0 ;
22478   long tmp___1 ;   22478   long tmp___1 ;
22479   long tmp___2 ;   22479   long tmp___2 ;
22480   vki_stack_t const   *ss ;   22480   vki_stack_t const   *ss ;
22481     22481  
22482   {   22482   {
22483   if (vgPlain_clo_trace_syscalls) {   22483   if (vgPlain_clo_trace_syscalls) {
22484     vgPlain_printf("sigaltstack ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);   22484     vgPlain_printf("sigaltstack ( %#lx, %#lx )", arrghs->arg1, arrghs->arg2);
22485   } else {   22485   } else {
22486     22486  
22487   }   22487   }
22488   if (vgPlain_tdict.track_pre_reg_read) {   22488   if (vgPlain_tdict.track_pre_reg_read) {
22489     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22489     (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22490                                           (Char *)"(syscallno)",   22490                                           (Char *)"(syscallno)",
22491                                           (PtrdiffT )layout->o_sysno,   22491                                           (PtrdiffT )layout->o_sysno,
22492                                           (SizeT )sizeof(UWord ));   22492                                           (SizeT )sizeof(UWord ));
22493     while (1) {   22493     while (1) {
22494       here = layout->o_arg1;   22494       here = layout->o_arg1;
22495       tmp = __builtin_expect((long )(! (! (sizeof(vki_stack_t const   *) <= sizeof(UWord )))),   22495       tmp = __builtin_expect((long )(! (! (sizeof(vki_stack_t const   *) <= sizeof(UWord )))),
22496                              1L);   22496                              1L);
22497       if (tmp) {   22497       if (tmp) {
22498     22498  
22499       } else {   22499       } else {
22500         vgPlain_assert_fail((Bool )1,   22500         vgPlain_assert_fail((Bool )1,
22501                             (Char const   *)"sizeof(const vki_stack_t *) <= sizeof(UWord)",   22501                             (Char const   *)"sizeof(const vki_stack_t *) <= sizeof(UWord)",
22502                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,   22502                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,
22503                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",   22503                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",
22504                             "");   22504                             "");
22505       }   22505       }
22506       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);   22506       tmp___0 = __builtin_expect((long )(! (! (here >= 0))), 1L);
22507       if (tmp___0) {   22507       if (tmp___0) {
22508     22508  
22509       } else {   22509       } else {
22510         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22510         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22511                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,   22511                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,
22512                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",   22512                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",
22513                             "");   22513                             "");
22514       }   22514       }
22515       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22515       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22516                                             (Char *)"sigaltstack(ss)",   22516                                             (Char *)"sigaltstack(ss)",
22517                                             (PtrdiffT )here,   22517                                             (PtrdiffT )here,
22518                                             (SizeT )sizeof(vki_stack_t const   *));   22518                                             (SizeT )sizeof(vki_stack_t const   *));
22519       break;   22519       break;
22520     }   22520     }
22521     while (1) {   22521     while (1) {
22522       here___0 = layout->o_arg2;   22522       here___0 = layout->o_arg2;
22523       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_stack_t *) <= sizeof(UWord )))),   22523       tmp___1 = __builtin_expect((long )(! (! (sizeof(vki_stack_t *) <= sizeof(UWord )))),
22524                                  1L);   22524                                  1L);
22525       if (tmp___1) {   22525       if (tmp___1) {
22526     22526  
22527       } else {   22527       } else {
22528         vgPlain_assert_fail((Bool )1,   22528         vgPlain_assert_fail((Bool )1,
22529                             (Char const   *)"sizeof(vki_stack_t *) <= sizeof(UWord)",   22529                             (Char const   *)"sizeof(vki_stack_t *) <= sizeof(UWord)",
22530                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,   22530                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,
22531                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",   22531                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",
22532                             "");   22532                             "");
22533       }   22533       }
22534       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);   22534       tmp___2 = __builtin_expect((long )(! (! (here___0 >= 0))), 1L);
22535       if (tmp___2) {   22535       if (tmp___2) {
22536     22536  
22537       } else {   22537       } else {
22538         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",   22538         vgPlain_assert_fail((Bool )1, (Char const   *)"here >= 0",
22539                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,   22539                             (Char const   *)"m_syswrap/syswrap-generic.c", 4160,
22540                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",   22540                             (Char const   *)"vgSysWrap_generic_sys_sigaltstack_before",
22541                             "");   22541                             "");
22542       }   22542       }
22543       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,   22543       (*(vgPlain_tdict.track_pre_reg_read))((CorePart )3, tid,
22544                                             (Char *)"sigaltstack(oss)",   22544                                             (Char *)"sigaltstack(oss)",
22545                                             (PtrdiffT )here___0,   22545                                             (PtrdiffT )here___0,
22546                                             (SizeT )sizeof(vki_stack_t *));   22546                                             (SizeT )sizeof(vki_stack_t *));
22547       break;   22547       break;
22548     }   22548     }
22549   } else {   22549   } else {
22550     22550  
22551   }   22551   }
22552   if (arrghs->arg1 != 0UL) {   22552   if (arrghs->arg1 != 0UL) {
22553     ss = (vki_stack_t const   *)((vki_stack_t *)arrghs->arg1);   22553     ss = (vki_stack_t const   *)((vki_stack_t *)arrghs->arg1);
22554     while (1) {   22554     while (1) {
22555       if (vgPlain_tdict.track_pre_mem_read) {   22555       if (vgPlain_tdict.track_pre_mem_read) {
22556         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22556         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22557                                               (Char *)"sigaltstack(ss)",   22557                                               (Char *)"sigaltstack(ss)",
22558                                               (Addr )(& ss->ss_sp),   22558                                               (Addr )(& ss->ss_sp),
22559                                               (SizeT )sizeof(ss->ss_sp));   22559                                               (SizeT )sizeof(ss->ss_sp));
22560       } else {   22560       } else {
22561     22561  
22562       }   22562       }
22563       break;   22563       break;
22564     }   22564     }
22565     while (1) {   22565     while (1) {
22566       if (vgPlain_tdict.track_pre_mem_read) {   22566       if (vgPlain_tdict.track_pre_mem_read) {
22567         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22567         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22568                                               (Char *)"sigaltstack(ss)",   22568                                               (Char *)"sigaltstack(ss)",
22569                                               (Addr )(& ss->ss_flags),   22569                                               (Addr )(& ss->ss_flags),
22570                                               (SizeT )sizeof(ss->ss_flags));   22570                                               (SizeT )sizeof(ss->ss_flags));
22571       } else {   22571       } else {
22572     22572  
22573       }   22573       }
22574       break;   22574       break;
22575     }   22575     }
22576     while (1) {   22576     while (1) {
22577       if (vgPlain_tdict.track_pre_mem_read) {   22577       if (vgPlain_tdict.track_pre_mem_read) {
22578         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,   22578         (*(vgPlain_tdict.track_pre_mem_read))((CorePart )3, tid,
22579                                               (Char *)"sigaltstack(ss)",   22579                                               (Char *)"sigaltstack(ss)",
22580                                               (Addr )(& ss->ss_size),   22580                                               (Addr )(& ss->ss_size),
22581                                               (SizeT )sizeof(ss->ss_size));   22581                                               (SizeT )sizeof(ss->ss_size));
22582       } else {   22582       } else {
22583     22583  
22584       }   22584       }
22585       break;   22585       break;
22586     }   22586     }
22587   } else {   22587   } else {
22588     22588  
22589   }   22589   }
22590   if (arrghs->arg2 != 0UL) {   22590   if (arrghs->arg2 != 0UL) {
22591     while (1) {   22591     while (1) {
22592       if (vgPlain_tdict.track_pre_mem_write) {   22592       if (vgPlain_tdict.track_pre_mem_write) {
22593         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,   22593         (*(vgPlain_tdict.track_pre_mem_write))((CorePart )3, tid,
22594                                                (Char *)"sigaltstack(oss)",   22594                                                (Char *)"sigaltstack(oss)",
22595                                                arrghs->arg2,   22595                                                arrghs->arg2,
22596                                                (SizeT )sizeof(vki_stack_t ));   22596                                                (SizeT )sizeof(vki_stack_t ));
22597       } else {   22597       } else {
22598     22598  
22599       }   22599       }
22600       break;   22600       break;
22601     }   22601     }
22602   } else {   22602   } else {
22603     22603  
22604   }   22604   }
22605   while (1) {   22605   while (1) {
22606     status->what = (enum __anonenum_what_133 )1;   22606     status->what = (enum __anonenum_what_133 )1;
22607     status->sres = vgPlain_do_sys_sigaltstack(tid, (vki_stack_t *)arrghs->arg1,   22607     status->sres = vgPlain_do_sys_sigaltstack(tid, (vki_stack_t *)arrghs->arg1,
22608                                               (vki_stack_t *)arrghs->arg2);   22608                                               (vki_stack_t *)arrghs->arg2);
22609     break;   22609     break;
22610   }   22610   }
22611   return;   22611   return;
22612 }   22612 }
22613 }   22613 }
22614 void vgSysWrap_generic_sys_sigaltstack_after(ThreadId tid ,   22614 void vgSysWrap_generic_sys_sigaltstack_after(ThreadId tid ,
22615                                              SyscallArgs *arrghs ,   22615                                              SyscallArgs *arrghs ,
22616                                              SyscallStatus *status )   22616                                              SyscallStatus *status )
22617 {   22617 {
22618   Bool tmp ;   22618   Bool tmp ;
22619   int tmp___0 ;   22619   int tmp___0 ;
22620   long tmp___1 ;   22620   long tmp___1 ;
22621   UWord tmp___2 ;   22621   UWord tmp___2 ;
22622     22622  
22623   {   22623   {
22624   if ((unsigned int )status->what == 1U) {   22624   if ((unsigned int )status->what == 1U) {
22625     tmp = sr_isError(status->sres);   22625     tmp = sr_isError(status->sres);
22626     if (tmp) {   22626     if (tmp) {
22627       tmp___0 = 0;   22627       tmp___0 = 0;
22628     } else {   22628     } else {
22629       tmp___0 = 1;   22629       tmp___0 = 1;
22630     }   22630     }
22631   } else {   22631   } else {
22632     tmp___0 = 0;   22632     tmp___0 = 0;
22633   }   22633   }
22634   tmp___1 = __builtin_expect((long )tmp___0, 1L);   22634   tmp___1 = __builtin_expect((long )tmp___0, 1L);
22635   if (tmp___1) {   22635   if (tmp___1) {
22636     22636  
22637   } else {   22637   } else {
22638     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",   22638     vgPlain_assert_fail((Bool )1, (Char const   *)"SUCCESS",
22639                         (Char const   *)"m_syswrap/syswrap-generic.c", 4178,   22639                         (Char const   *)"m_syswrap/syswrap-generic.c", 4178,
22640                         (Char const   *)"vgSysWrap_generic_sys_sigaltstack_after",   22640                         (Char const   *)"vgSysWrap_generic_sys_sigaltstack_after",
22641                         "");   22641                         "");
22642   }   22642   }
22643   tmp___2 = getRES(status);   22643   tmp___2 = getRES(status);
22644   if (tmp___2 == 0UL) {   22644   if (tmp___2 == 0UL) {
22645     if (arrghs->arg2 != 0UL) {   22645     if (arrghs->arg2 != 0UL) {
22646       while (1) {   22646       while (1) {
22647         if (vgPlain_tdict.track_post_mem_write) {   22647         if (vgPlain_tdict.track_post_mem_write) {
22648           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,   22648           (*(vgPlain_tdict.track_post_mem_write))((CorePart )3, tid,
22649                                                   arrghs->arg2,   22649                                                   arrghs->arg2,
22650                                                   (SizeT )sizeof(vki_stack_t ));   22650                                                   (SizeT )sizeof(vki_stack_t ));
22651         } else {   22651         } else {
22652     22652  
22653         }   22653         }
22654         break;   22654         break;
22655       }   22655       }
22656     } else {   22656     } else {
22657     22657  
22658     }   22658     }
22659   } else {   22659   } else {
22660     22660  
22661   }   22661   }
22662   return;   22662   return;
22663 }   22663 }
22664 }   22664 }